成功解决 ssh免密登录
原创
©著作权归作者所有:来自51CTO博客作者littlehaes的原创作品,请联系作者获取转载授权,否则将追究法律责任
只需两步
一.在本地机器生成秘钥
执行 ssh-keygen -t rsa -C "Hinata" 一路回车即可
-t 指定加密算法
-C 说明性文字, 习惯上写自己的邮箱
二. 自动将公钥id_rsa.pub传输到服务器上
执行 ssh-copy-id -i ~/.ssh/id_rsa.pub 服务器用户名@服务器ip地址
-i 指定本地的公钥文件地址
会自动将本地的公钥id_rsa.pub传入到服务器的~/.ssh/authorized_keys中
也可以手动复制公钥到服务器
windows命令行没有ssh-copy-id命令, 可以手动复制
(1)在家目录下创建.ssh文件夹
mkdir .ssh
(2)修改.ssh权限
chmod 700 .ssh
(3)进入.ssh, 创建authorized_keys文件, 并把公钥内容粘贴到文件中并保存
cd .ssh
vim authorized_keys
(4)修改authorized_keys权限
chmod 600 authorized_keys
现在就可以免密登录了
我最开始犯了个愚蠢的错误
我用的是windows, 使用命令行生成了公钥, 我用windows 商店中的ubuntu18.04去登录远程服务器的, 怎么改服务器的.ssh和authorized_keys都不能实现免密登录, 直到使用ssh -v 用户名@IP地址登录发现ssh读取公钥的地址并不是windows上的地址, 而是ubuntu18.04中的, 这才惊醒, 需要把ubuntu18.04的公钥复制粘贴到服务器的authorized_keys中, 不是windows的公钥!