Mac SSH免密码登录阿里云Unbutu服务器

生成SSH密钥

参考SSH Key for Github

1
2
3
4
5
$cd ~/.ssh
$ssh-keygen -t rsa -C "wenghengcong@***.com"
....
一路回车
$ssh-add id_rsa_github

经过上面之后,得到:id_rsa和id_rsa.pub两个文件。

将公钥上传到服务器

有两种方式:scpssh-copy-id,分别如下:

##scp

1
$ scp 本地公钥路径 user@ip:authorized_keys路径

根据自己需要修改以上命令,注意ip和authorized_keys路径有个:号。

1
$scp .ssh/id_rsa.pub root@106.14.*****:/root/.ssh/authorized_keys

ssh-copy-id

如果本地未安装:

1
$ brew install ssh-copy-id

之后,其命令:

1
$ ssh-copy-id -i 本地公钥路径 user@ip

一般来说,本地公钥路径是~/.ssh/id_rsa.pub

下面是我的命令:

1
$ ssh-copy-id -i ~/.ssh/id_rsa.pub root@106.14.****

配置sshd_config

该配置用于免登陆的相关设置,路径为/etc/ssh/sshd_config

注意下面值的设定,尤其是AuthorizedKeysFileauthorized_keys的路径,我启用的是root`用户,路径如下:

1
2
3
4
RSAAuthentication yes
PubkeyAuthentication yes
#AuthorizedKeysFile %h/.ssh/authorized_keys
AuthorizedKeysFile .ssh/authorized_keys

免登陆

通过以上设置,就可以免登陆了:

1
$ ssh root@106.14.174.202

如果,还需要你输入密码,可能就是SSH路径权限设置不对:

1
2
3
$ chmod 700 /root/
$ chmod 755 .ssh/
$ chmod 644 authorized_keys

原因嘛:

sshd为了安全,对属主的目录和文件权限有所要求。如果权限不对,则ssh的免密码登陆不生效。

  1. 用户目录权限为 755 或者 700,就是不能是77x。
  2. .ssh目录权限一般为755或者700。
  3. rsa_id.pub 及authorized_keys权限一般为644
  4. rsa_id权限必须为600

看下我的~

sh_to_aliyu

Over,祝好,一路顺畅~