繁体   English   中英

Bash脚本SSH到特定服务器

[英]Bash script to ssh to particular server

我想知道如何创建自己的bash脚本以SSH到服务器。 我知道这很懒,但是理想情况下,我不想不必输入:

ssh username@server

而只有我自己的两个字母的命令(即没有文件扩展名,并且可以从任何目录执行)。

任何帮助将非常感激。 如果它有助于指定文件路径等,则说明我使用的是Mac OSX。

您可以在〜/ .ssh / config文件中为ssh设置配置:

Host dev
    HostName mydom.example.com
    User myname

然后,只需输入

$> ssh dev

这样就完成了。 另外,您可以将公钥添加到文件〜/ .ssh / authorized_keys中,这样,每次要通过ssh连接时,系统都不会提示您输入密码。

使用别名

例如: alias sv='ssh user@hostname' ,那么您只需键入sv
请确保在您的配置文件中放置别名的副本,否则别名将在会话结束时消失。

您可以创建一个这样的别名:

alias ss="ssh username@server"并将其写入您的.bash_profile。 “ .bash_profile”是一个隐藏文件,位于您的主目录中。 如果.bash_profile还不存在(通过在主目录中键入ls -a进行检查),则可以自己创建它。

每次打开新的shell时,都会读取并执行bash_profile文件。

您可以使用ssh-argv0避免键入ssh

为此,您需要创建一个指向ssh-argv0的链接,其中包含您要连接的主机的名称,包括用户(如果需要)。 然后,您可以执行该链接,并且ssh将您连接到该链接名称的主机。

设置链接:

ln -s /usr/bin/ssh-argv0 ~/bin/my-server
  • /usr/bin/ssh-argv0是路径ssh-argv0我的系统上,你可能会有所不同,以检查which ssh-argv0
  • 我将它放在~/bin/ ,以便可以从任何目录执行它(在OS X中,您可能需要手动将~/bin/添加到.bash_profile上的路径中)
  • my-servermy-server的名称,如果需要设置用户,则为user@my-server

执行它:

my-server

您也可以将其与mogeb答案结合使用来配置服务器连接,以便可以使用较短的名称来调用它,并且即使该用户名与本地系统上的用户不同,也要避免包括该用户。

Host serv
    HostName my-server
    User my-user
    Port 22

然后设置一个名为serv ssh-argv0链接,并使用

serv

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM