Home > 系统管理, 零敲碎打 > [Linux]使用SSH-KEY方式登录SSH

[Linux]使用SSH-KEY方式登录SSH

管理Linux主机多了之后,管理大量的登录密码是一件很麻烦的事情,使用SSH-KEY方式登录服务器可以很好的解决问题。
以下是使用SSH-KEY方式实现客户端免密码登录SSH的方法。一套SSH-KEY可以等遍所有的服务器。

1.使用ssh-keygen在本地创建登录远程SSH服务器使用的公钥和私钥

1
2
3
ssh-keygen -t [rsa|dsa] -C "comments"
# -t 可选择RSA 和 DSA 两种密钥
# -C 可选注释

一路enter之后,会在~/.ssh目录下创建两个文件
id_dsa #私钥,妥善保存好。
id_dsa.pub #公钥

2.将公钥复制到服务器上对应用户的 ~/.ssh/目录下。

3.在服务器用户的 ~/.ssh/目录下执行

1
2
3
cat id_dsa.pub >>authorized_keys
#  首次使用的时候
chmod 600 authorized_keys

需要注意的是出于安全考虑,authorized_keys必须是600权限

4.修改/etc/ssh/sshd_config,确认一下SSHD的publickey验证模式是否打开

1
2
3
4
5
6
# 是否允许公钥认证。仅可以用于SSH-2。
PubkeyAuthentication yes|no  #ssh-2 打开
 
# 是否允许使用纯 RSA 公钥认证。仅用于SSH-1。
 
RSAAuthentication    yes|no  #ssh-1 打开

5.退出远程服务器,尝试再次登录远程服务器

1
ssh xxx.xxx.xxx.xxx

6.修改/etc/ssh/sshd_confg,根据需要关闭SSHD的密码验证
# 是否允许使用基于密码的认证。
PasswordAuthentication yes|no
# 是否允许质疑-应答(challenge-response)认证
ChallengeResponseAuthentication yes|no

7.对于MACOS系统可以在本地对SSH连接进行配置,打开~/.ssh/Config 并编辑文件,没有可以创建新文件

1
2
3
4
5
6
7
8
Host XXX.XXX.XXX.XXX
HostName XXXX.com
Port 22
User root
# 偏好设置为公钥认证
PreferredAuthentications publickey
# 私钥文件位置
IdentityFile ~/.ssh/id_dsa

参考
http://www.2cto.com/os/201401/272738.html

  1. No comments yet.
  1. No trackbacks yet.