讓我來舉個例子,假如我要連線到 customer.whatever.com 這台主機,但是要透過跳板主機才能連線時,如何利用ProxyCommand讓我們的生活更美好。
另外ProxyCommand也適用於scp及sftp,也就是要傳檔時也能用ProxyCommand代勞囉
[主機資料]
「跳板主機」
hostname: jump.linux.com
ssh port: 5566
user: user1 <-- 這個使用者是你的跳板帳號
「客戶主機」
hostname: customer.whatever.com
ssh port: 22
user: linuxuser <-- 這個使用者是客戶主機的帳號
[設定方式]
請編輯~/.ssh/config,並加上如下設定
Host customer
Hostname customer.whatever.com <--跳板主機要能正確解析hostname才行,否則請填IP
User linuxuser
ForwardAgent yes
Port 22
ProxyCommand ssh user1@jump.linux.com -p 5566 nc %h %p
[使用方式]
要使用ProxyCommand非常容易,只要下 ssh customer 並輸入密碼就好了,如下:
Shell>$ ssh customer
user@jump.linux.com's passoword:
linuxuser@customer.whatever.com's password:
Last login: Tue Nov 9 00:57:51 2010 from 22.33.44.55
[linuxuser@customer]$
還有另一種情況,就是假設customer.whatever.com是台web主機,你想連到他的資料庫主機,但要透過customer才能連的到,也就是說我要跳過兩台主機才能連到資料庫,這時ProxyCommand就超好用的。
[資料庫主機資料]
hostname: db.whatever.com
ssh port: 22
user: dbuser
[設定方式]
請編輯~/.ssh/config,並設定如下
Host customer
Hostname customer.whatever.com
User linuxuser
ForwardAgent yes
Port 22
ProxyCommand ssh user1@jump.linux.com -p 5566 nc %h %p
Host db
Hostname db.whatever.com
User dbuser
ForwardAgent yes
Port 22
ProxyCommand ssh linuxuser@customer nc %h %p
[連線方式]
請注意紅色字體的部份,確實連線到db主機囉
Shell>$ ssh db
user@jump.linux.com's passoword:
linuxuser@customer.whatever.com's password:
linuxuser@db.whatever.com's password:
Last login: Tue Nov 9 01:05:05 2010 from 192.168.1.2
[linuxuser@db]$
參考資料
man ssh_config
轉貼至http://beakdoosan.blogspot.tw/
沒有留言:
張貼留言