ubuntu 上 SSH scp 技巧

时间:2021-09-13 09:07:03

参考: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 意味着将私钥和密码交给它管理,让它来进行身份认证。