Posts SSH免密登录
Post
Cancel

SSH免密登录

在TCP/IP协议的应用层中,我们可能知道有FTP和Telnet可以用来传输数据,但它们是明文传输、不具备安全性的。而SSH是加密传输,更加可靠,也是非常常用的登录服务器的方法。

一、 SSH免密工作原理

工作原理

关于SSH的更多工作原理,推荐阅读图解SSH原理

二、 配置

主要思路就是生成客户端的公钥,将这个公钥加入服务端的授权列表中

2.1 生成密钥对

使用命令ssh-keygen,提示输入时直接按下回车,最后成功生成密钥

成功生成密钥

密钥对默认保存在用户文件夹的.ssh文件夹中,其中id_rsa是私钥id_rsa.pub是公钥

2.2 将公钥传输至服务器的授权列表

在建立ssh连接的时候,服务端会根据发来的公钥检查授权列表,若有则无需密码登录

使用命令ssh-copy-id,将得到的rsa.pub发送到服务器的授权列表中去

发送公钥至授权列表并验证

再次连接,验证是否免密

三、 ssh/scp/sftp

在设置好免密登录ssh之后,我发现我的scp也一样免密了,很自然想到这两者之间关系肯定不远。

打开Windows/System32/OpenSSH,果不其然看到三个主要的exe文件

  • ssh.exe
  • sftp.exe
  • scp.exe

三者都是OpenSSH下的工具,这样使用一套认证也说得过去了。为了了解更多信息,我去网上查找了一下,在这里挑重点简要说明一下。

  • SSH: Secure Shell
  • SCP: Secure Copy
  • SFTP: Secure File Transfer Protocol

三者都有一个Secure,意味着所有信息都是加密传输、确保安全的。SSH主要用来传输命令;SCP和SFTP主要用来远程文件。使用一番不难发现,SCP相对SFTP功能和语法都相对简单。传输方面,最大的区别就是SFTP可以断点续传,而SCP不能;最大的共同点都是和SSH用的一套安全系统,安全性都是相同的。

四、相关链接

This post is licensed under CC BY 4.0 by the author.