连接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
再使用密码登录,将出现: