登录Linux服务器的方式一般是使用ssh,直接使用密码登录既要记忆密码在输入过程中又有安全风险。所以本文将提供一个使用公钥登录的方式来解决输入密码的问题。

首先在mac上生成一个私钥、公钥对

首先,请打开终端。可以使用spotlight直接搜索term,就可以点击应用打开。

打开终端后输入下面的命令:

   $  ssh-keygen -t rsa -b 4096 -C 'test'

# 其中 -t表示加密类型,这里使用rsa
# -b表示加密位数
# -C表示备注信息

一路回车下去可以生成两个文件,id_rsa和id_rsa.pub文件。其中id_rsa为私钥文件,需要保存好,被别人获取的话别人也一样可以登录你的服务器。

当然在生成私钥的过程中,也可以对私钥增加密码,那么每次使用私钥登录时都需要输入密码。

本机放置私钥位置

将私钥放到本地home目录的.ssh目录下。若没有.ssh目录,则新建一个目录。

$ mkdir -p /home/test/.ssh
$ cp id_rsa /home/test/.ssh

将公钥上传到Linux服务器

首先要确认你要使用公钥登录使用的用户,直接用该用户使用密码登录。

然后新建.ssh和authorized_keys,给authorized_keys文件600权限,给.ssh文件夹700权限

[test@vps ~]$ mkdir -p /home/camash/.ssh
[test@vps ~]$ cd .ssh
[test@vps .ssh]$ touch authorized_keys
[test@vps .ssh]$ chmod 600 authorized_keys
[test@vps .ssh]$ cd ..
[test@vps ~]$ chmod 700 .ssh/

然后在本地mac端口上新开一个term页签,使用scp将本地的公钥文件id_rsa.pub传送到Linux服务器上。

$ scp id_rsa.pub test@vps:.ssh/

使用cat命令将公钥追加到authorized_keys文件

[test@vps .ssh]$ cat id_rsa.pub >> authorized_keys

修改sshd_config的配置参数

在Linux服务器上,使用root用户修改/etc/sshd_config文件的配置参数。使用以下参数打开公钥登录。

RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys

为了增加Linux服务器的安全强度,可以设置以下几个参数。不过请在确认使用公钥免密登录可行后再修改以下的参数。

PermitEmptyPasswords no
PasswordAuthentication no
PermitRootLogin no
Port 12222

配置完成后,就可在Mac上进行登录测试。

直接使用以下的命令,若一切顺利,不使用密码便可以连接到目标Linux服务器。

$ ssh test@vps

更近一步,若不想输入用户或者主机名,还可以使用config给这个访问增加一个别名

首先,在.ssh下增加一个文件config

$ touch config

在config中按以下内容添加服务器的别名和登录信息。

$ cat config
Host myvps #别名
HostName vps
Port 12222
User test
IdentityFile ~/.ssh/id_rsa

若要增加新的服务器信息,直接在config另起一段增加以上信息即可。

文件建立完成之后,就可以使用别名的登录服务器。

$ ssh myvps
Last login: Sun Jan 17 22:31:31 2016 from xxx.xx.xx.xxxx
[test@vps ~]$

MAC OSX使用公钥方式登录Linux服务器并进行安全加固的更多相关文章

  1. Mac Item2 SSH免密登录Linux 服务器的两种方式

    转自http://blog.csdn.net/jobschen/article/details/52823980 mac ssh登录linux服务器 的两种方式: 个人推荐第二种,zsh方式,只需要把 ...

  2. 实现利用公钥私钥免密码登录Linux服务器

    原理 客户端生成公钥私钥,把公钥拷贝给linux服务器,用自己的私钥连接服务器.实现如下: 如果是两台Linux服用器A和B,A来实现免密码登录B A执行ssh-keygen -t rsa 就会在/r ...

  3. Mac使用秘钥登录Linux服务器

    简介 在 Mac 上配置 SSH 密钥登录远程的 Linux 相关配置 1.创建本地的 SSH 密钥 本地 生成秘钥对 ssh-keygen -t rsa -C 'youxiang@aliyun.co ...

  4. 使用密钥验证方式登录linux系统

    1.使用PuTTY工具PuTTYgen生成密钥对,打开PuTTYgen,点击Generate生成公钥(生成过程动动鼠标会提升进度哦). 2.将公钥(蓝色的是私钥)放到服务器上去: -在/root目录下 ...

  5. ssh免密登录linux服务器

    Ssh免密登录 sshd服务 sshd简介: SSH 密钥为登录 Linux 服务器提供了更好且安全的机制.运行 ssh-keygen 后,将会生成公私密钥对.你可以将公钥放置到任意服务器,从持有私钥 ...

  6. SSH服务及通过SSH方式登录linux

    SSH服务及通过SSH方式登录linux 1.检查SSH服务转自:[1]Linux之sshd服务https://www.cnblogs.com/uthnb/p/9367875.html[2]Linux ...

  7. ssh远程登录linux服务器

    ssh远程登录linux服务器 用法: ssh -l user -p port server_ip 或者 ssh -p port user@server_ip 参数: -l 后接要登录的远程系统用户名 ...

  8. ZH奶酪:putty远程登录Linux服务器非常慢

    11.pytty远程登录Linux服务器非常慢 http://www.it165.net/os/html/201209/3425.html 12.启动SSHD服务报错 http://blog.chin ...

  9. Mac OS X下配置远程Linux 服务器SSH密钥认证自动登录

    1. 在本地机器创建公钥 打开万能的终端,执行如下命令,无视一切输出,一路欢快地回车即可. ssh-keygen -t rsa -C 'your email@domain.com' -t 指定密钥类型 ...

随机推荐

  1. eclipse常用10个快捷键[转载]

    转载自:http://www.jb51.net/softjc/139467.html

  2. PowerMock 遇到的问题——2

    如果我们要测试的类继承另一个类,而且在构造方法中有super():那么怎么Mock那个super语句呢? 在PowerMock中有一个suppressConstructor方法,具体写法如下: Pow ...

  3. 常州培训 day6 解题报告

    第一题: 题目大意: 给出一个N*N的矩阵,矩阵元素均为0或1.定义矩阵权值为sum(F[i][j]*F[j][i]); 给出K个操作: 询问矩阵的权值mod 2. 将矩阵的某一行元素取反(0变成1, ...

  4. MySQL数据库远程连接

    12.00 MySQL数据库远程连接 参考: http://www.jb51.net/article/24508.htm http://www.linuxdiyf.com/viewarticle.ph ...

  5. android平台手电筒开发源代码

    android平台手电筒开发源代码,AndroidManifest.xml文件的入口是startapp,这个文件没上传上来,大家可以自己写. 1. [代码]android 1 2 3 4 5 6 7 ...

  6. 用命令 安装/卸载 windows服务(转)

    第一种方法: 1. 开始 ->运行 ->cmd 2. cd到C:\WINDOWS\Microsoft.NET\Framework\v2.0.50727(Framework版本号按IIS配置 ...

  7. MySQL的高级查询

    高级查询 1.连接查询(对列的扩展) 第一种形式select * from Info,Nation #会形成笛卡尔积 select * from Info,Nation where Info.Nati ...

  8. php空心菱形

    <?php for($i=1;$i<=9;$i++){ for($j=1;$j<=9-$i;$j++){ echo " "; } for($k=1;$k<= ...

  9. css3 绘制优惠券

    今天偶然发现了一个css3制作动画的地方,发现css3的径向渐变好难理解,幸亏有这里的大神介绍http://www.daqianduan.com/5989.html,这是优惠券的介绍 还有这个http ...

  10. JAVA嵌套循环

    Java语言中的各种循环.选择.中断语句和C/C++一般无二. 选择结构 循环结构 中断(跳转) if for return if else while break if elseif do whil ...