Azure Linux VM密钥登陆

Azure  Linux  VM密钥登陆

前提条件:

Azure 上建立两台Linux虚拟机,其它一台已经使用使用"ssh-keygen -t rsa"命令来建立公钥。linux

(若是不须要修改,直接回车两次便可,默认保存路径为"~/.ssh/")vim

 

blob.png

操做步骤:

"~/.ssh/id_rsa.pub"这个文件拷贝到"40.125.167.182"服务器的"~/.ssh/"目录中并更名为"authorized_keys"centos

[wangruifeng@centos .ssh]$ scp id_rsa.pub wangruifeng@40.125.167.182:/home/wangruifeng/.ssh/authorized_keys缓存

The authenticity of host '40.125.167.182 (40.125.167.182)' can't be established.安全

ECDSA key fingerprint is SHA256:utVm2XGMADXER1jJKS33wX/NGx5Izy0DjL8mXxXqUsE.服务器

ECDSA key fingerprint is MD5:d5:3f:dd:ff:3a:dc:44:15:dd:37:fc:31:04:6a:8c:7e.ssh

Are you sure you want to continue connecting (yes/no)? yeside

Warning: Permanently added '40.125.167.182' (ECDSA) to the list of known hosts.ui

wangruifeng@40.125.167.182's password:this

id_rsa.pub                                                                                                     100%  400   408.3KB/s   00:00   

 

修改"40.125.167.182"服务器的"~/.ssh/"目录权限为700"~/.ssh/authorized_keys"文件权限为600

(这是linux的安全要求,若是权限不对,自动登陆将不会生效。)

 

blob.png

 

再次使用ssh链接,已经实现密钥匙登陆:

blob.png

 

故障排查:

可能还会提示输入密码的解决方法:

 

1) 若是出现报警:"Address X.X.X.X maps to localhost, but this does not map back to the address - POSSIBLE BREAK-IN ATTEMPT!"

 

"XXXXX"(链接端)服务器上执行以下命令:

echo "GSSAPIAuthentication no" >> ~/.ssh/config

 

"XXXXX"(被链接端)服务器上执行"vi /etc/ssh/sshd_config"命令,修改下面两项值为"no"

"GSSAPIAuthentication no"

"UseDNS no"

 

2) 若是出现报警:"Agent admitted failure to sign using the key."

 

执行命令:"ssh-add"(把专用密钥添加到ssh-agent的高速缓存中)

 

若是还不行,执行命令:"ps -Af | grep agent "

(检查ssh代理是否开启,若是有开启的话,kill掉该代理)

而后执行"ssh-agent"(从新打开一个ssh代理)

 

若是仍是不行,继续执行命令:"sudo service sshd restart"(重启一下ssh服务)

 

3) 经过命令"/usr/sbin/sestatus -v" 查看SELinux状态,若是"SELinux status"参数为"enabled"(开启状态),则关闭SELinux

 

临时关闭方法(不用重启机器):"setenforce 0"

 

修改配置文件关闭方法(须要重启机器):执行命令"/etc/selinux/config",将"SELINUX=enforcing"改成"SELINUX=disabled"

4) 执行命令"vim /etc/ssh/sshd_config"去掉下面三行的注释:

 

"RSAAuthentication yes"

"PubkeyAuthentication yes"

"AuthorizedKeysFile      .ssh/authorized_keys"

 

SSH免密码登陆原理:

 

这种方式你须要在客户端服务器上为本身建立一对密匙,并把公匙放在须要登陆的服务器上。

当你要链接到服务器上时,客户端就会向服务器请求使用密匙进行安全验证。

服务器收到请求以后,会在该服务器上你所请求登陆的用户的家目录下寻找你的公匙,

而后与你发送过来的公匙进行比较。

若是两个密匙一致,服务器就用该公匙加密“质询”并把它发送给客户端。

客户端收到“质询”以后用本身的私匙解密再把它发送给服务器。

 

使用场景:

 

1) rsync自动备份时免密码登陆;

2) 集群环境中须要主机间互相通讯;

3) 自动部署项目,将编译好的war包放到正确的服务器上。

相关文章
相关标签/搜索