ssh无须密码直接连接阿里云服务器

这两天连接从自己的Mac电脑连接阿里云服务器的时候总是要打一个命令,很是麻烦:

$ sudo ssh 121.42.169.178

接着输入sudo的密码,再输入服务器的密码,这才能登陆上去,我想起以前用过的一个方法能够免密码登陆,阿里云服务器可以不可以这样呢?

说一下免密码登陆的原理吧,就是把自己的生成的公钥(公钥不知道是什么的可以的百度)里面的内容放到服务器.ssh目录下的authorized_keys文件中,这个文件默认不存在必须手动创建。

于是,我开始了这一些列操作,但是操作结束了我发现还是要密码登录,这是为什么呢?
经过网管的多方查证,发现阿里云目录下的.ssh目录权限不对,我们先进行一下备份,再把原来备份文件夹里的authorized_keys复制过来

mv .ssh .ssh.bak
cp .ssh.bak/authorized_keys ./.ssh/

但是发现还是不行,这是为什么呢?
网管问了我一句,你这个authorized_keys里的内容复制粘贴的吗?我说对啊,他说可能是有换行(尴尬),换行!!!
我们只能切换回自己的用户,scp一个公钥到服务器上把文件内容覆盖:

scp .ssh/id_rsa.pub root@121.42.169.178:/root/.ssh/authorized_keys

这样我们再进行登录,发现果然不需要进行服务器密码输入了,但是发现需要我自己root才行,这个是为什么呢?

1
2
3
ssh 121.42.169.178
piqiu@121.42.169.178's password:
Permission denied, please try again.

原来我自己现在的用户是piqiu,要想直接连接远程服务器,必须对方的用户也和我一样,但是对方是root,所以有两种解决办法:
1、自己把root下面的.ssh的公钥复制给服务器,然后每次sudo了再ssh登录。
2、自己把当前用户下面的.ssh的公钥复制给服务器,然后每次直接ssh登录,但是登录的服务器地址为root@121.42.169.178

因为我复制的是当前用户下面的公钥,所以我直接这个命令就可以连接到远程服务器了,是不是很方便:

1
2
3
4
ssh root@121.42.169.178
Last login: Tue Mar 29 10:10:27 2016 from 219.141.174.66

Welcome to aliyun Elastic Compute Service!
上一篇:Hey,Siri,帮我把服务器A的X目录凌晨五点拷贝到B服务器上


下一篇:《IPv6精髓(第2版)》——3.7 特殊地址