如何管理经常访问的主机列表?

Ben*_*ams 7 linux ssh command-line-interface

如何快速选择并登录需要通过ssh访问的多台主机?我正在构建一个如下所示的 shell 脚本,用于dialog从命令行显示主机菜单,但我很好奇是否有更好的方法。

#!/bin/dash
tempfile=`tempfile 2>/dev/null` || tempfile=/tmp/test$$
trap "rm -f $tempfile" 0 1 2 5 15

while [ 1 ]
do
    dialog --menu "Select Host" 0 0 0 \
    "hostname1" "Host description 1" \
    "hostname2" "Host description 2" \
    "hostname3" "Host description 3" 2> $tempfile

    HOSTNAME=`cat $tempfile`

    if [ "x" = "x$HOSTNAME" ]; then
        break
    fi

    ssh $HOSTNAME
done
Run Code Online (Sandbox Code Playgroud)

gar*_*les 12

我喜欢在我的客户端机器上的 ~/.ssh/config 文件中为每个主机设置一个短名称。下面是一个例子:

Host host1
    HostName     longhostname.mydomain.com 
    User         remoteuser
    IdentityFile ~/ssh-keys/id_rsa-my-keypair
Run Code Online (Sandbox Code Playgroud)

这样我就可以输入“ssh host1”并立即登录。