配置文件
- 命令行选项
- 用户配置文件(~/.ssh/config)
- 系统配置文件(/etc/ssh/ssh_config)
配置文件可分为多个配置区段,每个区段使用“Host”来区分。我们可以在命令行种输入不同的配置段。对每一个配置项来说,首次获取的参数值将被采用,因此通常的设置应该放在文件的后面,特定Host的相关配置项应该放带文件的前面。
常用配置项
Host
Host配置项标识一个配置区段。后面可以接Alias别名。
SSH 配置项参数值可以使用通配符: ‘*’ 代表 0~n 个非空白字符, ‘?’ 代表一个非空白字符, ‘!’ 表示例外通配。
GlobalKnownHostsFile
指定一个或多个全局认证主机缓存文件,用来缓存通过认证的远程主机的密钥,多个文件用空格分隔。默认缓存文件为:/etc/ssh/ssh_known_hosts, /etc/ssh/ssh_known_hosts2.
HostName
指定远程主机名,可以直接使用数字IP地址。如果主机名中包含 ‘%h’ ,则实际使用时会被命令行中的主机名替换。
IdentityFile
指定密钥认证使用的私钥文件路径。默认为 ~/.ssh/id_dsa, ~/.ssh/id_ecdsa, ~/.ssh/id_ed25519 或 ~/.ssh/id_rsa 中的一个。
Port
指定远程主机端口号,默认为 22 。
User
指定登录用户名。
指定使用哪个密钥文件
#vim config
Host *
User root
Identityfile ~/.ssh/id_rsa_test
如上设置了连接所有的host,都是使用id_rsa_test这个密钥。
主机分组管理
Host X01
HostName X01.YYY.com
Host X02
HostName X02.YYY.com
...
Host X01 X02 ...
User my_username
Compression yes
Ciphers arcfour,blowfish-cbc
Protocol 2
ControlMaster auto
ControlPath ~/.ssh/%r@%h:%p
IdentityFile ~/.ssh/YYY/id_rsa
指定某些主机的端口
Host 192.168.1.2
Port 56000
经典
$ vim ~/.ssh/config
Host sshtest
HostName ssh.test.com
User user
Port 2200
IdentityFile ~/.ssh/id_rsa_test
Host ssttest2
HostName ssh.test2.com
User user2
Port 2345
IdentityFile ~/.ssh/id_rsa_test2