今天设置ssh 服务器免密码登录发现一个坑,其实也不是坑,就是自己太弱了
环境:阿里云 Ubuntu 16.04.3
公司弄了两台服务器我重新设置一下ssh,之前只有一台有免登陆,但是后来发现另一台应该也上一下
但是两台的话怎么弄呢?我很久没摆弄这些了,看了一下文档,嗯,多个rsa key的话可以用一个config来搞定。说干就干!
我是mac 所以从mac的角度来说
打开terminal 然后一路回车就好了,不需要paraphrase。
ssh-keygen -t rsa -f ~/.ssh/dev_server_rsa -b 2048
这时候在你电脑上.ssh/下就会出现 dev_server_rsa 和 dev_server_rsa.pub两个文件
你需要登录你的服务器
ssh user@你的服务器IP
然后用filezilla 这个很好用的sftp文件把 .pub的那个东西传到服务器上的~/.ssh/下 改名成authorized_keys
如果已经有了的话就
cd ~/.ssh/
cat dev_server_rsa.pub >> authorized_keys
接着
vi /etc/ssh/sshd_config
找到以下的行
RSAAuthentication yes
PubkeyAuthentication yes
AuthorizedKeysFile %h/.ssh/authorized_keys
把前面的#去掉
接着
把最下面的PasswordAuthentication yes 把yes改成no
保存,退出
然后
sudo chmod 700 ~/.ssh/
sudo chmod 600 ~/.ssh/authorized_keys(这两个chmod 一定要设置)
service ssh restart
exit退出。。。
正题来了,
有2个rsa咋办咧?
好说,在本机的~/.ssh/下
touch config
vi config
然后输入以下内容
Host x.x.x.x(开发服务器ip)
Port 22
IdentityFile ~/.ssh/dev_server_rsa
User 你登录的用户名
Host x.x.x.x(生产服务器ip)
Port 22
IdentityFile ~/.ssh/production_server_rsa
User 你登录的用户名
保存,本机重启服ssh
mac如下
sudo launchctl stop/start com.openssh.sshd
再登录。。。。。
ssh user@devserverxxxx
oh!shit !
Permission deniedxxx
怎么肥四。我曹登不进去了
然后用ssh -v user@devserverxxxx debug
发现根本没找到我指定的key文件
这时候需要在本地
ssh-add .ssh/dev_server_rsa
ssh-add .ssh/production_server_rsa
把这两个加进去。。大功告成!
因为日志上显示了 会去寻找类似id_rsa这样的默认key 如果你没有把你自定义的key加进去自然认证失败
还有一个大坑就是。。一定要在setup 完成后,测试一下看要不要密码。。。再关闭密码登录。。。。
怎么看的呢?
ssh -v user@devserverxxxx
用这个登录,就会有这个debug日志给你看
debug1: kex_input_ext_info: server-sig-algs=<rsa-sha2-256,rsa-sha2-512>
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey
debug1: Next authentication method: publickey
debug1: Trying private key: /Users/rick/.ssh/id_rsa
debug1: Trying private key: /Users/rick/.ssh/id_dsa
debug1: Trying private key: /Users/rick/.ssh/id_ecdsa
debug1: Trying private key: /Users/rick/.ssh/id_ed25519
debug1: No more authentication methods to try.
Permission denied (publickey).
如果你没关闭密码登录,在rsa失败后会出现。
Authentications that can continue: password这样,然后就开始登录了。
1个小时的debug完毕。。。睡觉!