参考:https://deepzz.com/post/how-to-setup-ssh-config.html
SSH(Secure Shell)是什么?是一项创建在应用层和传输层基础上的安全协议,为计算机上的 Shell(壳层)提供安全的传输和使用环境。也是专为远程登录会话和其他网络服务提供安全性的协议。它能够有效防止远程管理过程中的信息泄露问题。通过 SSH 可以对所有传输的数据进行加密,也能够防止 DNS 欺骗和 IP 欺骗。
具体生成 SSH Key 方式请参考:Github ssh key生成,免密登录服务器方法。这里以 id_ecdsa
(私钥) 和 id_ecdsa.pub
(公钥) 为例。
本篇文章主要介绍 SSH 相关的使用技巧。通过对 ~/.ssh/config
文件的配置你可以大大简化 SSH 相关的操作,如:
Host example # 关键词
HostName example.com # 主机地址
User root # 用户名
# IdentityFile ~/.ssh/id_ecdsa # 认证文件
# Port 22 # 指定端口
eg:
Host dev165
HostName 192.168.28.165
User sea
IdentityFile /sea.pem
Port
通过执行 $ ssh example
我就可以登录我的服务器。而不需要敲更多的命令 $ ssh root@example.com
。又如我们想要向服务器传文件 $ scp a.txt example:/home/user_name
。比以前方便多了。
更过相关帮助文档请参考 $ man ssh_config 5
。
配置项说明
SSH 的配置文件有两个:
$ ~/.ssh/config # 用户配置文件
$ /etc/ssh/ssh_config # 系统配置文件
下面来看看常用的配置参数。
Host
用于我们执行 SSH 命令的时候如何匹配到该配置。
-
*
,匹配所有主机名。 -
*.example.com
,匹配以 .example.com 结尾。 -
!*.dialup.example.com,*.example.com
,以 ! 开头是排除的意思。 -
192.168.0.?
,匹配 192.168.0.[0-9] 的 IP。
AddKeysToAgent
是否自动将 key 加入到 ssh-agent
,值可以为 no(default)/confirm/ask/yes。
如果是 yes,key 和密码都将读取文件并以加入到 agent ,就像 ssh-add
。其他分别是询问、确认、不加入的意思。添加到 ssh-agent 意味着将私钥和密码交给它管理,让它来进行身份认证。