SSH 可说是每台 GNU/Linux 必装的服务之一,我们可以借由它,在远端进行一切的操作。为避免被怪客 (cracker) 入侵,会于提供该服务的机器加上限制,以提高安全性,例如:更改埠口 (Port)、限制 IP 登入或只使用金钥登入 ... 等。
随着机器数量及限制增加的同时,使用上的繁琐及不便也会随之增加。这时,我们可事先设定各个主机,以便日后的使用。Windows 上的 PieTTY, Xshell 皆有此功能,而在 Linux 里冻仁则习惯直接编修 openssh-client 的设定档 $HOME/.ssh/config。
设定各个主机 (Host) 的 SSH 设定。
$ vi ~/.ssh/config
# - master
Host master # 代號
Hostname 192.168.11.24 # IP or Domain name
Port 2222 # 指定埠口
User jonny # 使用者名稱
identityfile ~/.ssh/id_rsa_24 # 指定金鑰
# - slave
Host slave # 代號
Hostname 192.168.11.25 # IP or Domain name
Port 2223 # 指定埠口
User jonny # 使用者名稱
identityfile ~/.ssh/id_rsa_25 # 指定金鑰
使用 $HOME/.ssh/config 设定档连接各主机。
[ jonny@workstation ~ ]
$ ssh slave
[ jonny@slave ~ ]
$ sftp master
Connected to master.
sftp>
以下参数在较旧版的 openssh-server 可能不支援。
当本机上的同一把金钥曾在多台 Server 上注册并启用此设定,则可于多台 Server 上转发,也就是可使用本机的金钥登入第二层、第三层的 Server。
ForwardAgent yes
先借由 CPU 压缩后再进行传输,适用于效能较好的机器。
Compression yes
ControlMaster auto
ControlPath /tmp/ssh-%r@%h:%p
ControlPersist 1h
于区网、可信赖的网络环境及大量档案传输之情境使用此参数可有效减少 CPU 负载以提升传输速度。
Ciphers arcfour
更多详细说明请参考 Manpage。
man ssh_config