GNU/Linux >> Linux の 問題 >  >> Linux

Remote Host Identification Has Changed 警告の回避

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 もあります 真正性プロンプトをスキップするようにしますが、鍵のフィンガープリントを表示したい場合は、そのオプションを省略できます。


Linux
  1. ProxyJumpを使用してプロキシまたは要塞を介してリモートホストにSSHで接続する

  2. Sshリモートコマンドライン引数はどのように解析されますか?

  3. SSH-「リモートホストの識別が変更されました」

  1. ssh コマンドを使用してリモート ホストに接続する方法

  2. sed がファイルを変更したかどうかを確認する方法

  3. 2 つの引数を持つエイリアスで $1 を適切に使用する方法

  1. Linuxテストがどのように変化したか、そして今日重要なこと

  2. リモートホストが切断されてsshfsが失敗する

  3. VPS に ssh で接続するときの問題のキー警告