文章目錄
  1. 1. 生成公钥
  2. 2. 添加ssh key
  3. 3. 禁止root用户登录

之前也设置过SSH登录,这次记下来吧。

生成公钥

使用ssh-keygen命令,例如执行ssh-keygen -t rsa即可

添加ssh key

在远程服务器的用户目录新建.ssh目录,新建authorized_keys文件,将本地上传的id_ras.pub里的内容添加到authorized_keys文件里。

这里需要注意.ssh和authorized_kesy权限,.ssh必须是700, 而authorized_keys文件只有文件拥有者有写权限。否则会提示Authentication refused: bad ownership or modes for file /home/dengsl/.ssh/authorized_keys错误。所以authorized_keys的权限设置必须为600, 640等等。

从阮一峰的博客里看到一条命令,但其实这条命令里存在错误,修改之后如下

1
ssh user@host 'mkdir -p .ssh && chmod 700 .ssh && touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

如果已经存在.ssh目录,可以执行

1
ssh user@host 'chmod 700 .ssh && touch .ssh/authorized_keys && chmod 600 .ssh/authorized_keys && cat >> .ssh/authorized_keys' < ~/.ssh/id_rsa.pub

之后会提示输入密码,之后就可以不需要密码登录了。

禁止root用户登录

修改/etc/ssh/sshd_config文件,在#PermitRootLogin yes后面添加PermitRootLogin no即可。之后重启sshd服务service sshd restart使修改的配置生效

参考资料

文章目錄
  1. 1. 生成公钥
  2. 2. 添加ssh key
  3. 3. 禁止root用户登录