ssh免密登录
ssh免密登录
在系统上安装ssh后,生成秘钥
> ssh-keygen -t rsa -C "info" -t 指定加密算法 -C 在密文尾部加标记信息
将公钥发布到待免密登录的机器上
> cd ~/.ssh/ # 有两种方式发送公钥到远程机器上 > ssh-copy-id -i [本地公钥文件id_rsa.pub路径] 用户名@IP # 这样一部就可以将公钥写到远程机器的 /.ssh/authorized_keys 中,缺点是默认22端口,不可更改 > scp ~/.ssh/id_rsa.pub 用户名@IP:.ssh/id_rsa_remote.pub > cat id_rsa_remote.pub >> authorized_keys # 这种方式既可以设置端口,也可以用于对方机器非root用户的情况(需要密码)# 在我们想使用脚本自动完成秘钥发布工作时,可以使用sshpass解决人机交互问题 > sshpass -p '密码' ssh-copy-id "-o StrictHostKeyChecking=no" 用户名@IP # sshpass会为你的首次连接自动填充密码 # 同时使用"-o StrictHostKeyChecking=no"解决输入密码后的网络校验工作,避免首次登录输入yes # 这样就解决了两步人机交互问题,实现自动化注意:
B机器上有A机器的公钥,则A可以免密登录到B,不要记反了。
可以使用
passwd 用户名更改用户的密码需要在sshd的配置文件
/etc/ssh/sshd_config中增加PermitRootLogin yes和PubkeyAuthentication yes,用于打开root用户远程访问和秘钥验证登录
ssh连接到到机器上
配置完成后,使用 `ssh 用户名@IP` 连接远程机器,首次连接会询问是否继续,输入yes,会在本地生成known_hosts文件用于记录已访问机器