どうすればいいのか悩んでいます。
私の目標は、ssh router1が私のジャンプホストに入力されたときにルーターでsshを実行し、同時にExpectスクリプトを実行してパスワードファイル(ofcourceは私だけが読むことができる)から自分のパスワードを入力することです。暗号化器は誰も手に入らないように送信する必要があります。
私は期待されるスクリプトが機能するように管理しましたが、私のフォルダに(私たちが持っているルータの数について)数え切れないほど多くの予想スクリプトを持ってしたくありません。
aliasコマンドを使用して実行できるとしますか? router1と入力すると、その特定のルータに自動的にSSHを接続するようにaliasコマンドを設定しました。
(重複というメッセージが表示されましたが、重複した質問が見つからなかったため、もう少し詳しく説明します。会社にルータが100個あるとしましょう。これでエイリアスを作成しました。)拡張してパスワードを自動入力して、貴重な時間を節約したいと思います。
つまり、エイリアスを期待するスクリプト(必要に応じてbashスクリプトも可能)と組み合わせる方法を探していますが、どのスクリプトでもうまくいきません。
誰かが助けることができることを願っています:)
答え1
期待して送信する内容はプレーンテキストで送信されますが、SSH接続は暗号化されます。
しかし、スクリプトを作成してそこにパスワードを保存する代わりに、SSH設定と秘密/公開鍵ベースの認証を試してみてはいかがでしょうか。
まず、独自のSSH秘密鍵とそれに応じた公開スタブを作成します。ただ実行
ssh-keygen
パスワード(ユーザーアカウントのパスワードと異なる場合があり、ログインするたびに入力する必要があります)を入力したり提供したりしないでください(キーにパスワードがないため、パスワードの入力を求められません)。キーペアにパスワードを割り当てても、使用しているデスクトップ環境に応じて、ローカルキーリングサービスは認証をキャッシュして自動的にロック解除できます。
次に、 ~/.ssh/id_rsa.pub ファイルをリモートホストにコピーします。 ~/.ssh/authorized_keys
scp ~/.ssh/id_rsa.pub user@remotehost:~/
ssh user@remotehost
mkdir .ssh
cat id_rsa.pub >> .ssh/authorized_keys
chmod 600 .ssh/authorized_keys
そして出てください。次に ~/.ssh/config を編集し、次のエントリを追加します。
Host router
Hostname 192.168.1.1
User routerusername
Port 22
最初のホスト行に指定された名前はDNS名である必要はなく、別名または希望の名前にすることもできます。構成ファイルは、X転送などのすべてのコマンドラインオプションをサポートしています。異なるホストの異なるIDファイルを指すこともできます。
今すぐ
ssh router
自動的にログインします。