首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >保存各种AWS帐户的SSH代理设置

保存各种AWS帐户的SSH代理设置
EN

Unix & Linux用户
提问于 2016-08-31 04:06:57
回答 3查看 455关注 0票数 0

我通过许多亚马逊帐户管理EC2实例(虚拟机)。机器不一定有域名;通常我通过IP地址连接到它们。

每个AWS帐户都有自己的堡垒服务器,我可以通过它连接。这很烦人,因为当我连接到机器时,我必须在命令行上指定SSH隧道的设置。如果机器有域名,我将在我的~/.ssh/config文件中配置隧道。相反,我必须这样做--代理IP地址根据我正在处理的AWS帐户而改变:

代码语言:javascript
复制
ssh -o ProxyCommand="ssh -W %h:%p ubuntu@1.2.3.4" ubuntu@172.17.1.2

是否有一种很好的配置SSH的方法,因此我不需要指定代理命令(或者用户名)?如果更有意义的话,我很乐意使用另一个解决方案,比如bash别名。

EN

回答 3

Unix & Linux用户

发布于 2016-08-31 07:26:19

这正是您拥有~/.ssh/config的目的。目前还不清楚你有什么问题,但是

代码语言:javascript
复制
Host proxy1
  Hostname 1.2.3.4
  User ubuntu

Host target1
  Hostname 172.17.1.2
  ProxyCommand ssh -W %h:%p proxy1
  User ubuntu

然后只使用ssh target1连接。当然,您可以使用单个代理匹配更多的目标,定义不同的别名,或者使用通配符(Host 172.17.1.*)来匹配整个IP块。

票数 1
EN

Unix & Linux用户

发布于 2016-08-31 04:46:05

我将这些别名添加到我的.bashrc文件中:

代码语言:javascript
复制
alias ssh-foo='ssh -o ProxyCommand="ssh -W %h:%p -l ubuntu <FOO_BASTION_IP>" -l ubuntu'
alias ssh-bar='ssh -o ProxyCommand="ssh -W %h:%p -l ubuntu <BAR_BASTION_IP>" -l ubuntu'

现在,要连接的命令非常简单,如:

代码语言:javascript
复制
ssh-foo <FOO_INSTANCE_IP>

scp的别名是相似的,但是用户名需要被不同地命名:

代码语言:javascript
复制
alias scp-bar='scp -o ProxyCommand="ssh -W %h:%p -l ubuntu <BAR_BASTION_IP>" -o User=ubuntu'
票数 0
EN

Unix & Linux用户

发布于 2016-08-31 05:00:04

就像前面提到的.bashrc选项一样。对于不同的事物:

修改您的主机文件,以包括友好的名称,如您所愿。

代码语言:javascript
复制
sudo vi /etc/hosts

使用ssh脚本创建几个不同的文本文件。

创建了一个文本文件:

sudo echo "ssh -o ProxyCommand=\"ssh -W %h:%p ubuntu@1.2.3.4\" " > your-ssh-file

使其可执行

sudo chmod +x your-ssh-file

在您创建的文件夹中使用以下方法执行文件:

./your-ssh-file

票数 0
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/306870

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档