三台及以上的免密登录。
文章脉络
因为ubuntu已经生成过秘钥,用来提供远程仓库,不想胡乱搞。所以在win本地使用生成秘钥指令,然后把 公钥 添加到ubuntu ~/.ssh路径下使用 >> 指定到authorized_keys中。
win->公钥->ubuntu
本人很小心,如果你一直配置之后还是需要密码,不妨按照我的试试,
配置之后还需要输入密码
权限问题:因为几个文件权限导致配置好之后还需要输入密码(很烦)。我已经把所有问题命令都重复了好几遍确认思路和操作没有问题的时候开始查阅到这个问题
自己总结配置
在win下cmd
ssh-keygen.exe -t rsa -C "maosql@vip.com"
//或者
ssh-keygen -t rsa -C "maosql@vip.com"
然后在下面路径找到两个文件
C:\Users\user\.ssh
id_rsa | id_rsa.pub //两个文件
然后把其中一个公钥文件拷贝到ubuntu的 ~/.ssh 路境内因为一般这个路径下面大家已经生成过这个文件,名字可能会相同,所以在拷贝之前先改一下名字。
cd ~/.ssh
cat win_rsa.pub >> authorized_keys
//可以继续追加第二台,第三台等等
cat win2_rsa.pub >> authorized_keys
我遇到的坑,权限问题。权限一定要按照下面来配置,不要想当然的配置成777
#原因
sshd为了安全,对属主的目录和文件权限有所要求。如果权限
不对,则ssh的免密码登陆不生效。
//用户权限700
chmod 700 /home/username
//.ssh权限
chmod 700 ~/.ssh
//~/.ssh/authorized_keys权限
chmod 600 ~/.ssh/authorized_keys
进入/etc/ssh/sshd_config文件
sudo vim /etc/ssh/sshd_config
检查AuthorizedKeysFile配置是否启用authorized_keys
//默认#注释掉的,后面一串删除改为yes
PermitRootLogin yes
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile .ssh/authorized_keys
可以使用下面指令检查,一个一个检查容易眼花
cat /etc/ssh/sshd_config |egrep AuthorizedKeysFile
#AuthorizedKeysFile .ssh/authorized_keys
既然公钥和权限设置都弄好了,下面就要找私钥进行登录了,所以要指定私钥的位置
Host maosql
HostName 192.168.159.105
User maosql
Port 22
IdentityFile "C:\Users\user\.ssh\id_rsa"
ServerAliveInterval 60
Port 端口号
IdentityFile 私钥位置
ServerAliveInterval 每隔60s发送一个信号以防断链
重新启动ssh
systemctl restart sshd.service
完美收官
总结:既然我们相用秘钥登录肯定要把秘钥给出去,然而给秘钥肯定是给公钥,不可能把公钥给出去吧,然后怎么需要私钥进行解密呢,我们把我们私钥的路径给指定一下就好了。逻辑一定要顺。