回答:
SCPはあなたを読みます~/.ssh/config
と/etc/ssh/ssh_config
。ssh設定でホストエイリアスの1つの名前との間でscpを実行している限り、機能します。
これは答えとしてはちょっと短いようですので、ssh設定でできることについての詳細を次に示します...
ssh設定ファイルの高度な機能のいくつかを説明する投稿は次のとおりです。http://magazine.redhat.com/2007/11/27/advanced-ssh-configuration-and-tunneling-we-dont-need-no-臭い-vpn-ソフトウェア/
ssh / scpをhttpプロキシ経由でトンネルする必要がありますか?問題ありません。ここで説明されている手順を使用してください:http : //www.mtu.net/~engstrom/ssh-proxy.php
ProxyCommandオプションの別の使用:http ://jasonmc.wordpress.com/2008/04/16/ssh-magic/
host
コマンドラインで指定された引数からssh_config hostname
エントリにマッピングするのは、ssh
それ自体を使用するのが簡単です。
実際に接続せずに、コマンドラインの構成に何を使用するかを評価して出力するように要求できます。次に、リストの対象を取り出すだけですhostname
(構成キーの名前を小文字に変換することで正規化することに注意してください)。簡単な例は次のとおりです。
ssh -G database | awk '/^hostname / { print $2 }'
.ssh / configに以下が含まれている場合:
Host database
Hostname database.example.com
これは印刷されdatabase.example.com
ます。
pingを実行するには、もちろん出力を評価して引数として使用できます。
ping $(ssh -G database | awk '/^hostname / { print $2 }')
でこれを行う必要はありませんが、scp
ssh
のデバッグトレースを使用できます。
ssh -v HostName ' ' 2>&1 | grep '^debug1: Connecting to'
通常、実行できhost HostName
、IPアドレスを取得します。
host
がインストールされていない場合は(インストールされているはずです)、nslookup HostName 8.8.8.8
Google DNSサーバーを使用して検索を実行できます。
これらのことを行うには、マシンのリゾルバーが正しい構成(ファイル/etc/resolv.confおよびおそらく/etc/nsswitch.conf)を持っているか、ホストを完備した「完全修飾ドメイン名」を使用する必要があります。ドマイイン、および「TLD」(。org、.com、.netというサフィックス)。
~/.ssh/config
、でホストエイリアスを検索しません。これは、この質問のポイントであると理解しています。
HostName
は任意のエイリアスであり、ドメイン名ではありません。
偽のProxyCommandを使用する...
$ ssh -o 'ProxyCommand echo %h>&2' mYaLiAs 2>&1 | fgrep -v ssh_exchange_id | read actual
$ echo $actual
192.168.1.234
.ssh/config
と/etc/ssh/ssh_config
。構成で定義されたエイリアスでscpできない理由はありますか?