このSSHホスト名タブの完成スクリプトを変更するには?

このSSHホスト名タブの完成スクリプトを変更するには?

次のスクリプトを探してください(bashの場合)これにより、(から)接続しているすべてのホスト名に対してタブの~/.ssh/known_hosts完成を得ることができます。

complete -W "$(echo `cat ~/.ssh/known_hosts | cut -f 1 -d ' ' | sed -e s/,.*//g | uniq | grep -v "\["`;)" ssh

しかし、問題は、ユーザー名を入力した後にタブの完成が機能しないことです。

これをどのように改善できますか?入力すると...

ssh myusername@my 

そして、「myhostname.com」が完了すると予想します。そうできますか?

完全な文字列(user@hostname)にもタグを付けることができる方が良いでしょうが、どちらのオプションも問題ありません。最初のユーザー名がなければ、私のホストユーザー名が私のローカルユーザー名と一致しない限り、これはあまり役に立ちません。

ベストアンサー1

既定では、既知の_hostsファイルには通常、bash_completionが確認できないハッシュエントリが含まれています。

ssh_config(/etc/ssh/ssh_config)を編集して、次の設定を行うことができます。

HashKnownHosts no

その後、現在知られているホストファイルを消去する必要があります。

> ~/.ssh/known_hosts

おすすめ記事