如何配置 SSH 免密码登录

从 client 到 server .

windows(A机):自己的电脑,需要远程登录的客户端   

linux(B机):需要免密登录的服务器

​ 如果想用A机  通过 SSH 免密登录 B机,

而 SSH 免密登录 需要使用到公钥和私钥,一般是在 A机 上生成 公钥/私钥对(以下统称:密钥对),然后再将公钥添加到B机中。

1.首先在A机下生成密钥对

# 参数:-f 生成的文件名(默认是 id_rsa) -P 表示密码,-P ” 表示空密码,会在 .ssh 目录下生成 id_rsa 和 id_rsa.pub。
ssh-keygen -t rsa -f id_rsa -P '' 
 

PS:由于我的 ~/.ssh 目录下还有其他的密钥对,比如用来连接gitlab的。所以建议你在添加之前,先查看自己的 ~/.ssh 目录,如果该目录中也有其他密钥对,避免混淆,我建议你重新命名。如果重命名以后, 密钥对没有没有生成在 ~/.ssh 目录里,就需要手动把 密钥对文件(包括:id_rsa 和 id_rsa.pub)移动到 ~/.ssh 目录下。

2.将产生的公钥复制到 B 机的用户目录下

# ${username} 登录的用户名
# ${host} IP地址(或域名)
# ${user} 用户名
scp id_rsa.pub ${username}@${host}:/home/${user}/id_rsa.pub

 

3.先通过 A 机使用密码登录 B 机,将公钥追加到 authorzied_keys 中

远程登录命令:

# ${username} 用户名
# ${host} IP地址(或域名)

ssh -l ${username} ${host}

追加公钥到 authorzied_keys中 :

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

PS:authorzied_keys 文件的权限要是 600 。

PS:如果是服务器,最好把密码登录关闭。

4.登录测试

# ${private_key} 私钥文件
# ${username} 用户名
# ${hostname} 主机名
#如果是默认的文件名,则可以去掉-i 参数
ssh -i ${private_key} ${username}@${hostname}

猜你喜欢

转载自www.cnblogs.com/cidgur/p/9447366.html