这两天连接从自己的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 | ssh 121.42.169.178 |
原来我自己现在的用户是piqiu,要想直接连接远程服务器,必须对方的用户也和我一样,但是对方是root,所以有两种解决办法:
1、自己把root下面的.ssh的公钥复制给服务器,然后每次sudo了再ssh登录。
2、自己把当前用户下面的.ssh的公钥复制给服务器,然后每次直接ssh登录,但是登录的服务器地址为root@121.42.169.178
因为我复制的是当前用户下面的公钥,所以我直接这个命令就可以连接到远程服务器了,是不是很方便:
1 | ssh root@121.42.169.178 |