连接SSH服务器,使用私钥连接,将比使用密码连接更加安全。

1. 服务器生成密钥对

首先,进入用户家目录:

cd

使用ssh-keygen生成公私钥对:

ssh-keygen -t rsa

过程中可以选择设置密码passphrase或者不设置。

生成后,将在用户家目录下创建.ssh目录,其中包含生成的公私钥对。

其中id_rsa为私钥,id_rsa.pub为公钥。

2. SSH服务器配置

id_rsa.pub名称的公钥的内容导入到~/.ssh/authorized_keys文件中。

cat id_rsa.pub >> ~/.ssh/authorized_keys

3. SSH客户端配置-Windows XShell

id_rsa名称的私钥下载到本地或者复制其内容出来使用,后续将使用该私钥连接到远程服务器。

连接SSH服务器时,选择Public Key(U)方式进行认证,然后将下载的id_rsa文件导入到用户密钥管理器中。

选择『记住密码』,则在后续连接时可以自动连接了。

4. SSH客户端配置-Mac OS终端设置

id_rsa名称的私钥内容拷贝到Mac OS的终端的如下本地私钥文件中,如私钥文件名为private_key_centos_61

本地目录为/Users/harid/.ssh

使用如下命令连接SSH服务器:

ssh root@192.168.3.61 -p 22 -i ~/.ssh/private_key_centos_61

其中-i参数指定本地的私钥文件。

可以将上述命令以别名方式设置到~/.zprofile文件中,以避免每次都需要输入这么长的命令。

5. SSH客户端配置-手机端ConnectBot设置

将下载的id_rsa名称的私钥文件导入到ConnectBot软件中。

导入后,即可编辑连接,设置使用密钥验证

6. 关闭密码认证方式

至此,可以使用私钥进行SSH认证,即可关闭密码认证方式了。

在服务器上,修改/etc/ssh/sshd_config文件内容:

vi /etc/ssh/sshd_config

设置参考如下:

PubkeyAuthentication yes
PasswordAuthentication no

设置完后,重启ssh服务。

service sshd restart

再使用密码登录,将出现: