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

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

如何快速选择并登录我需要通过 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

答案1

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

Host host1
    HostName     longhostname.mydomain.com 
    User         remoteuser
    IdentityFile ~/ssh-keys/id_rsa-my-keypair

这样,我只需输入“ssh host1”即可立即登录。

答案2

对于基于 GUI 的解决方案,请查看SSH菜单

答案3

对于频繁登录,我通常依赖短主机名。我们公司的 DNS 包含其中的大部分,其余的在 /etc/hosts 中。结合 ssh 代理,这对我来说已经足够方便了。哦,是的,还有:肌肉记忆。当我想到一个主机名时,如果我的手指离键盘足够近,它就会神奇地出现在屏幕上。

对于不太常用的命令,我通常依赖于命令历史记录(如果它们不是您可以将任务从记录在 Wiki 中(复制/粘贴)复制到其他位置(不频繁的任务)或记录在 Wiki 中。这种方法的优点是,不频繁的任务或多或少可以保证完全记录下来。

我曾想过尝试自动化命令完成,这样 ssh 就会自动扩展“tab”上的常用主机名,但直到今天我并没有太想念这个……总有一天我会的……

答案4

我有过目不忘的记忆力,所以只要记住他们的 IP 地址就行了,我知道这很悲哀,但我不得不说这还是有好处的 :)

相关内容