SSH免密登录原理及步骤

SSH免密登录原理及步骤



1.什么是SSH?

简单说,SSH是一种网络协议,用于计算机之间的加密登录。

  • 如果一个用户从本地计算机,使用SSH协议登录另一台远程计算机,就可以认为,这种登录是安全的,即使被中途截获,密码也不会泄露。

2.SSH的两种认证方式

  • 基于口令的安全认证 :与telnet类似,提供正确的用户口令后可以登录远程服务器。
  • 基于密钥的安全认证 :使用公钥和私钥对的方式对用户进行认证。
    (使用基于口令的认证登录比较麻烦,这里提供密钥登录的操作步骤)

3.SSH背景

  • 最早的时候,互联网通信都是明文通信,一旦被截获,内容就暴露无疑。 1995年,芬兰学者设计了SSH协议,将登录信息全部加密,成为互联网安全的一个基本解决方案,迅速在全世界获得推广,目前已经成为Linux系统的标准配置。
  • 通过使用SSH,可以把所有传输的数据进行加密,这样"中间人"这种攻击方式就不可能实现了,而且也能够防止DNS欺骗和IP欺骗。
  • 需要指出的是,SSH只是一种协议,存在多种实现,既有商业实现,也有开源实现。我们使用的是OpenSSH,它是自由软件,应用非常广泛。
  • 绝大多数Linux发行版本都采用OpenSSH作为SSH服务器。

4.SSH(Secure Shell)最基本的用法:

① SSH主要用于远程登录。假定你要以用户名user,登录远程主机host, 只要一条简单命令就可以了。

② 命令:ssh user@host 如果本地用户名与远程用户名一致,登录时可以省略用户名。> ssh host

③ SSH的默认端口是22,也就是说,你的登录请求会送进远程主机的 22端口。使用p参数,可以修改这个端口。


5.SSH密钥登录原理

  • 客户端发出认证请求;
  • 服务器端使用客户端发送的公钥对一个随机的256位的字符串进行加密,并发送给 客户端;
  • 客户端使用私钥对字符串进行解密,并生成一个MD5值发送给服务器端;
  • 服务器端根据原始随机字符串生成MD5值进行匹配, 确认客户端身份;
  • 至此, 双方互相确认对方身份并建立加密信道, 可以正式进行安全通信。
    在这里插入图片描述

6.密钥登录的操作步骤

(1)使用root权限修改每台机器的hosts,hosts是一个没有扩展名的系统文件,可以用记事本等工具 打开,其作用就是将一些常用的网址域名与其对应的IP地址建立一个关联“数据库”,当用户在浏览器中输入一个需要登录的网址时,系统会首先自动从Hosts文件中寻找对 应的IP地址,一旦找到,系统会立即打开对应网页,如果 没有找到,则系统会再将网址提交DNS域名解析服务器进 行IP地址的解析。

  • 添加对应的远程IP和主机名(IP 主机名)

    sudo vim /etc/hosts

  • 将原来的内容清空,增加对应内容:

192.168.137.129 Cloud01
192.168.137.130 Cloud02

(2)客户端发起一个Public Key认证请求
ssh-keygen -t rsa (三个回车)

  • 在$HOME/.ssh/目录下,会新生成两个文件:id_rsa.pub和 id_rsa。(id_rsa.pub是你的公钥,后者是你的私钥。)

(3)这时再输入 ssh-copy-id user@remotehost 命令,将公钥传送到远程主机host上面,远程主机将用户的公钥(公钥就是一段字符串),保存在登录后的用户主目录的$HOME/.ssh/authorized_keys文件中。

ssh-copy-id [email protected]

(4)查看远程主机上是否接收到,.ssh/authorized_keys文件中
实际上是追加在authorized_keys文件的末尾。

(5)重启 SSH服务命令使其生效:

sudo service sshd restart

(6)好了,从此你再登录,就不需要输入密码了,使用IP免密登录(用户名相同时,ssh+主机名)

ssh Cloud02

如果用户名不同,登录方式为:

• ssh username@ IP

ssh [email protected]

我猜你是想搭集群^_^—> 呐!点这里<—

--->有问题请联系QQ1436281495^_^

猜你喜欢

转载自blog.csdn.net/qq_39394264/article/details/88197904