Bash で事前に定義されたものに引数を渡したい場合は、エイリアスの代わりに関数を使用して同じ効果を得ることができます:
ssh-keyrm() { ssh-keygen -f "$HOME/.ssh/known_hosts" -R "$1"; }
次のように実行されます:
$ ssh-keyrm 127.0.0.1
エイリアスと同様に、関数は .bashrc、.bash_profile に格納するか、シェル内で定義できます。
<ブロック引用>
alias に引数を指定することはできません
Bash エイリアスは単純な展開 (エイリアス名がエイリアス値に置き換えられるだけ) として機能するため、individual を参照できません。 $n を使用した引数。
ただし、引数が最後にある限り、引数を指定できます。 コマンドの。次のようなエイリアス:
alias rmh="ssh-keygen -f ~/.ssh/known_hosts -R"
rmh 192.168.0.1
として実行できます そして rmh
という単語ですが 展開されますが、それに続くすべての引数は同じ場所に残ります。
同じ IP を使用するさまざまなデバイスで同様の問題がありますが、それを解決するために少し異なるアプローチを取りました:ホスト キーが known_hosts
に入らないようにする そもそも .
alias sshn='ssh -o UserKnownHostsFile=/dev/null -o StrictHostKeyChecking=no'
次に sshn
を実行します ホスト キー セキュリティを無効にしたいときはいつでも。
$ sshn [email protected]
Warning: Permanently added '192.168.1.1' (ECDSA) to the list of known hosts.
[email protected]'s password:
ssh は、ホストを既知のホストに追加したことを通知しますが、書き込みが /dev/null
に行ったので、実際には追加しませんでした .ログ レベルを調整することでこれを抑制することができますが、他の有用なメッセージがオフになる可能性があります。
StrictHostKeyChecking=no
もあります 真正性プロンプトをスキップするようにしますが、鍵のフィンガープリントを表示したい場合は、そのオプションを省略できます。