美国Linux服务器的Secure Shell 协议是一种加密网络协议,一般缩写为SSH,专门用于客户端和美国Linux服务器之间的安全连接,同时支持各种身份验证机制的使用。目前技术下最实用的身份验证机制是基于密码的身份验证和基于公钥的身份验证两种,本文小编就来讲讲美国Linux服务器系统如何设置基于SSH密钥的身份验证,以及如何免密远程连接到美国Linux服务器。
一、设置SSH无密码登录
在美国Linux服务器系统中设置SSH无密码登录,需要生成公共身份验证密钥,并将其附加到远程美国Linux服务器的/.ssh/authorized_keys 文件,以下具体讲解配置SSH无密码登录的详细步骤。
1、检查现有的SSH密钥对
在生成新的SSH密钥对之前,首先检查美国Linux服务器系统上是否已有SSH密钥,目的是为了不覆盖现有密钥。运行以下Is 命令可以查看美国Linux服务器系统是否存在现有SSH密钥:
Is -al ~/.ssh/id_*.pub
如果存在现有密钥的话,可以直接使用这些密钥并跳过进行下一步,或备份旧密钥并生成新密钥。如果看到No such file or directory或no matches found则意味着美国Linux服务器没有SSH密钥,则可以继续执行下一步生成新密钥。
2、生成新的SSH密钥对
以下命令将可以在美国Linux服务器系统生成一个新的4096位SSH密钥对,并将电子邮件地址作为注释:
ssh-keygen -t rsa -b 4096 -C Email
按Enter接受则默认文件位置和文件名:
Enter file in which to save the key(/home/yourusername/.ssh/id_rsa)
接下来ssh-keygen工具将会要求键入安全密码,无论是否想要使用密码短语都可以,如果选择使用密码短语,可以获得额外的安全保护。多数美国Linux服务器开发人员和系统管理员倾向于使用SSH而不使用密码,因为这样对完全自动化的流程很有用。如果不想使用密码短语,请按 Enter:
Enter passphrase(empty for no passphrase)
要确认美国Linux服务器是否已经生成SSH密钥,可以使用以下命令列出新的私钥和公钥:
ls~/.ssh/id_*/home/yourusername/.ssh/id_rsa/home/yourusername/.ssh/id_rsa.pub
3、复制公钥
已经生成了SSH密钥对后,为了能够在不需要密码的情况下登录到美国Linux服务器,需要将公钥复制到要管理的美国Linux服务器。将公钥复制到主机的最简单方法是使用名为的命令SSH-copy-id 。在本地主机终端类型:
ssh-copy-id remote_username@server_ip_address
系统将提示输入 remote_username 的密码:
remote_username@server_ip_address's password:
用户通过身份验证后,公钥将附加到美国Linux服务器远程用户 authorized_keys 文件,并且将关闭连接。如果由于某种原因,SSH-copy-id 本地主机上没有该实用程序,则可以使用以下命令复制公钥:
cat ~/.ssh/id_rsa.pub |SSHremote_username@server_ip_address "mkdir -p ~/.SSH&& cat >> ~/.ssh/authorized_keys"
4、使用SSH密钥登录美国Linux服务器
完成上述步骤后,就能够登录到远程美国Linux服务器而不会被提示输入密码,测试口令:
SSHremote_username@server_ip_address
二、禁用SSH密码验证
要为美国Linux服务器添加额外的安全层,可以禁用SSH的密码身份验证。在禁用SSH密码身份验证之前,需要确保可以在没有密码的情况下登录到美国Linux服务器,并且登录的用户具有sudo权限。
1、使用具有 sudo 权限的用户或 root 用户,通过SSH密钥登录到远程美国Linux服务器:
SSHsudo_user@server_ip_address
2、打开美国Linux服务器SSH配置文件 /etc/ssh/sshd_config ,搜索以下指令并按如下方式进行修改:
PasswordAuthentication no
ChallengeResponseAuthentication no
UsePAM no
完成后保存文件并重新启动SSH服务,在Ubuntu或Debian版本的美国Linux服务器上的运行命令为:
sudo systemctl restartSSH
在CentOS或Fedor的美国Linux服务器上的运行命令为:
sudo systemctl restartSSHd
到这里美国Linux服务器系统SSH免密远程连接的设置都已操作完毕,之后的美国Linux服务器用户们就可以直接通过SSH免密登录操作了。