2016-06-30 8 views
1

私のせいで、私は他のLinuxのことを学んでいるので、私はbashの力を完全に無視しています。IPアドレスのBASHラベル

私は、非常に簡単な操作のためにリモートからアクセスする多くのシステムを持っています。問題は、各IPアドレスを覚えておく必要があることです。そして、彼らはたくさんあります。 。/ bashrcに〜にエイリアスを使用して

はオプションです:

alias ssh_customer1='ssh [email protected]' 
alias ssh_customer2='ssh [email protected]' 
alias copy_customer1='scp * [email protected]:/etc/example/' 
alias copy_customer2='scp * [email protected]:/etc/example/' 
alias get_customer1='scp [email protected]0.X.X.X:/etc/example/* .' 
alias get_customer2='scp [email protected]:/etc/example/* .' 

が、柔軟性が最小限です。

別の可能性は、パラメータとしてシステムの名前を使って関数を定義することですが、私はこれが好きではない:私はちょうどすることなく、対応するIPアドレスを持つラベルを交換することを好むだろう

sshx('customer1') 
scpx('customer2') 

それを覚えて、標準コマンドを使用してください:

ssh [email protected]_customer1 
scp [email protected]_customer2:/etc/example/* . 

これは可能ですか?

+2

ニックネームでIPを '/ etc/hosts'と宣言することができます。別の方法は、各ホストがその名前を公示するように、DNSサーバーとDHCPクライアント/サーバーを構成することです。 – oliv

+0

ええ、あなたのホストファイルに入れてください。 – 123

答えて

4

セットアップ~/.ssh/configファイル:今、あなたは使用することができます

$ cat ~/.ssh/config 
Host cust1 
    HostName 10.X.X.X 
    User root 
Host cust2 
    HostName 10.X.X.Y 
    User root 

ssh cust1 

別のクールなことは、あなたが今、各サーバーにIDファイルを添付することができるということです。

$ cat ~/.ssh/config 
Host cust1 
    HostName 10.X.X.X 
    User root 
    IdentityFile ~/.ssh/cust1.id_rsa 
Host cust2 
    HostName 10.X.X.Y 
    User root 
    IdentityFile ~/.ssh/cust2.id_rsa 

これにより、パスワードなしでsshとscpを使用できるようになります。 使用されている。

+0

ありがとう@andIrc、私はこの可能性を知らなかった! 非常によく説明されています。 –

+0

@Alex私は私が助けることができてうれしいです。アイデンティティファイルの使用を検討する場合は、ssh-agentを実行することも考慮する必要があります。これは、IDファイルを使用するたびに再入力せずに、IDファイルにパスワードを設定できるようにするためです。 :-) – andlrc

+0

ブリリアント!その「IdentityFile」のもの+1。 –