使用 SSH config 文件
配置文件
SSH 程序可以从以下途径获取配置参数:
- 命令行选项
- 用户配置文件 (~/.ssh/config)
- 系统配置文件 (/etc/ssh/ssh_config)
配置文件可分为多个配置区段,每个配置区段使用 Host 来区分。我们可以在命令行中输入不同的 Host 来加载不同的配置段。
对每一个配置项来说,首次获取的参数值将被采用,因此通用的设置应该放到文件的后面,特定 Host 相关的配置项应放到文件的前面。
常用配置项
Host
配置项标识了一个配置区段。
ssh配置项参数值可以使用通配符:*代表0~n个非空白字符,?代表一个非空白字符,!表示例外通配。HostName
指定远程主机名,可以直接使用数字IP地址。如果主机名中包含%h,则实际使用时会被命令行中的主机名替换。User
指定登录用户名。Port
指定远程主机端口号,默认为 22 。IdentityFile
指定密钥认证使用的私钥文件路径。默认为~/.ssh/id_dsa,~/.ssh/id_ecdsa,~/.ssh/id_ed25519或~/.ssh/id_rsa中的一个。文件名称可以使用以下转义符:
%d本地用户目录
%u本地用户名称
%l本地主机名
%h远程主机名
%r远程用户名
可以指定多个密钥文件,在连接的过程中会依次尝试这些密钥文件。GlobalKnownHostsFile
指定一个或多个全局认证主机缓存文件,用来缓存通过认证的远程主机的密钥,多个文件用空格分隔。默认缓存文件为:/etc/ssh/ssh_known_hosts,/etc/ssh/ssh_known_hosts2UserKnownHostsFile
指定一个或多个用户认证主机缓存文件,用来缓存通过认证的远程主机的密钥,多个文件用空格分隔。默认缓存文件为:~/.ssh/known_hosts,~/.ssh/known_hosts2ForwardAgent yes
允许ssh-agent转发IdentitiesOnly
指定ssh是否仅使用配置文件或命令行指定的私钥文件进行认证。值为yes或no,默认为no,该情况可在ssh-agent提供了太多的认证文件时使用StrictHostKeyChecking
ask:默认值,第一次连接陌生服务器时提示是否添加,同时如果远程服务器公钥改变时拒绝连接
yes:不会自动添加服务器公钥到~/.ssh/known_hosts中,同时如果远程服务器公钥改变时拒绝连接
no:自动增加新的主机键到~/.ssh/known_hosts中
示例
SSH 服务器: ssh.test.com |
密码认证登录方式
ssh -p 2200 -i ~/.ssh/id_rsa_test user@ssh.test.com |
密钥认证登录方式
ssh-copy-id -i ~/.ssh/id_rsa_test user@ssh.test.com |
使用配置文件方式
有如下配置文件:
Host sshtest |
使用配置文件登录:
ssh sshtest |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 躺平的blog!
