Psychz——Raviteja
投票:0发布日期:2018年3月6日01:46:37
SSH(Secure SHell)是一种与远程主机建立连接的协议。SSH工作在客户端-服务器模型上,即本地主机安装SSH客户端,与安装在远端主机上的远程SSH服务器建立连接。一旦安装了SSH客户端,我们就可以连接到远程SSH服务器。
多级认证
SSH协议支持多层身份验证。当您通过SSH连接到远程主机时,它会提示输入密码。可以将密码视为身份验证的主要级别。但是,如果您的密码被其他用户检索,则可以很容易地访问连接。因此,SSH还为您提供了另一种类型的身份验证,称为SSH密钥。一旦建立了SSH密钥,您就可以在登录时禁用密码,因为密钥负责身份验证。否则,每次通过SSH连接到远程主机时都必须输入密码。
通过SSH密钥对认证
SSH密钥是一对公钥和一个私钥。这些键是在命令的帮助下生成的,并存储在本地机器中。公钥被传输到要与之建立SSH连接的远程服务器。在身份验证过程中,只有远程服务器的公钥识别出您的私钥时,才会建立连接。否则,它发送一个错误消息。
下面将讨论设置SSH密钥所需的步骤。
SSH密钥对生成
1.请使用如下命令创建SSH密钥对。
ssh - keygen - t rsa
2.现在必须输入要保存密钥的位置。如果您不输入任何位置而按下enter键,它将把密钥存储在默认路径,即“/ home / current_user / . ssh / id_rsa”.
3.保存文件后,将显示要求输入密码短语的提示。密码短语是另一种级别的身份验证,每次建立连接时都必须输入密码短语。如果不需要密码短语,请将该字段保留为空。
4.私钥现在位于“/ home / current_user / . ssh / id_rsa”公钥输入“/ home / current_user / . ssh / id_rsa . pub”.
向远程服务器传输公钥
1.可以使用ssh-copy-id命令将公钥传输到远程主机。
ssh-copy-id username@IP_address_of_remote_host
2.一旦您将公钥传输到远程主机,就可以在登录时禁用所需的密码。
禁用Root用户登录密码
1.SSH配置文件存放路径为“/ etc / ssh / sshd_config”.请使用任何编辑器编辑文件,如nano, vi等。
在本例中,我们使用vi编辑器。
sudo vi /etc/ssh/sshd_config
2.该文件包含一行“PasswordAuthentication”。请删除“#”符号来取消注释。然后按如下所示编辑文件。
PasswordAuthentication没有
3.另外,检查下列行是否应该按如下方式设置。
PubkeyAuthentication是的
ChallengeResponseAuthentication没有
4.重启SSH服务使修改生效。
service sshd restart(Centos操作系统)
sudo systemctl restart ssh(Ubuntu操作系统)