在使用Linux服务器的时候,为了安全起见,SSH的登录最好配置成公钥登录,这样可以防止对服务器密码的暴力猜解。
本机采用Xshell作为SSH客户端,Xshell提供了一个向导可以很方便地生成公私钥(位于“工具”菜单->“新建用户密钥生成向导”)。如图所示
注意密钥类型最好选择RSA,密钥长度可以尽量选择长的。
点击“下一步”会生成公钥对。
再点击“下一步”,输入密钥名称,然后输入密码加密。
再点击“下一步”,会提示公钥已生成,将公钥以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,关闭密码登录,提高安全性。
请确保公钥可以登录成功后再关闭密码登录,否则可能造成无法登录的问题。
万一不小心把文件搞丢了就哭了
有的VPS提供应急Shell可以解决这个问题,当然能物理接触的服务器完全不用担心 :)
原来如此