Linux服务器配置SSH公钥登录

在使用Linux服务器的时候,为了安全起见,SSH的登录最好配置成公钥登录,这样可以防止对服务器密码的暴力猜解。


本机采用Xshell作为SSH客户端,Xshell提供了一个向导可以很方便地生成公私钥(位于“工具”菜单->“新建用户密钥生成向导”)。如图所示

ssh_public_key_login_1

注意密钥类型最好选择RSA,密钥长度可以尽量选择长的。

点击“下一步”会生成公钥对。

ssh_public_key_login_2

再点击“下一步”,输入密钥名称,然后输入密码加密。

ssh_public_key_login_3

再点击“下一步”,会提示公钥已生成,将公钥以SSH2-OpenSSH的格式保存。

将保存好的.pub公钥文件以任何可行的方式(FTP等)上传到服务器。

在服务器端编辑/etc/ssh/sshd_config (需要Root权限)
将下面的选项前的注释去掉:

RSAAuthentication yes #开启RSA认证
PubkeyAuthentication yes #开启公钥认证
AuthorizedKeysFile .ssh/authorized_keys #设置公钥的保存位置,默认为用户目录下的.ssh目录,没有可自行创建。

保存并退出。

接着在上传.pub公钥文件的目录下面执行

cat ./pubkey_name.pub >> ~/.ssh/authorized_keys

将公钥导入。
注:pubkey_name为你生成的公钥的名字

最后设置权限

chmod 700 .ssh
chmod 600 ~/.ssh/authorized_keys

不要忘记重新启动sshd服务以使配置生效

service sshd restart

注销后再登录,这时候可以看见Public key可以激活,并登录。

在测试公钥登陆成功后可以再次编辑/etc/ssh/sshd_config,将PasswordAuthentication yes 改为 PasswordAuthentication no,关闭密码登录,提高安全性。

请确保公钥可以登录成功后再关闭密码登录,否则可能造成无法登录的问题。

发布者

《Linux服务器配置SSH公钥登录》上有3条评论

    1. 有的VPS提供应急Shell可以解决这个问题,当然能物理接触的服务器完全不用担心 :)

      Google Chrome 42.0.2305.3 Google Chrome 42.0.2305.3 Windows 8.1 x64 Edition Windows 8.1 x64 Edition

发表评论

电子邮件地址不会被公开。 必填项已用*标注