SSH密钥提供了比使用密码更安全的方式登录服务器。因为密码是可以被暴力破解攻破的,而SSH密钥方式几乎是不可能使用暴力破解方式攻击。生成的密钥对提供了2个长字符串:一个公共和一个私有密钥。你可以把公共密钥放在任何一个服务器上,然后客户端用一个对应的私有密钥连接。只有这两个密钥匹配时,连接建立。你还可以用密码保护私有密钥。
创建RSA密钥对 在客户端机器上创建密钥对: ssh-keygen -t rsa 回答一些问题 Generating public/private rsa key pair. Enter file in which to save the key (/home/tian/.ssh/id_rsa): Enter passphrase (empty for no passphrase): Enter same passphrase again: Your identification has been saved in /home/tian/.ssh/id_rsa. Your public key has been saved in /home/tian/.ssh/id_rsa.pub. The key fingerprint is: c6:35:b7:fc:f7:4c:67:8c:0a:77:58:52:66:8b:a7:8a tian@tian-Ubuntu The key's randomart image is:
用不用密码取决于你。用了密码之后更安全,但是每次用密钥对时都需要输入密码。 公共密钥在/home/tian/.ssh/id_rsa.pub,私有密钥在 /home/tian/.ssh/id_rsa。
拷贝公共密钥到服务器 当生成密钥之后,我们把它拷贝到要使用密钥登陆的服务器上。 可以使用ssh-copy-id命令把公共密钥拷贝到服务器的authorized_keys文件,替换下面命令的用户名和ip为你的: ssh-copy-id user@123.45.56.78 或使用如下命令: cat ~/.ssh/id_rsa.pub | ssh user@123.45.56.78 "mkdir -p ~/.ssh && cat >> ~/.ssh/authorized_keys" 现在你就可以用SSH密钥对验证了,如果你设置了SSH私有密钥密码,需要输入密码。
可选:禁止root使用密码登录 限制root用户只能使用SSH密钥,编辑配置文件: sudo vim /etc/ssh/sshd_config 找到PermitRootLogin一行,改为: PermitRootLogin without-password 重新加载ssh,使生效: reload ssh
相关主题 |