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

.ssh/config へのパスワードの追加

解決策 1:

いいえ、openssh 組み込みメカニズムを使用して ssh 認証用の非対話的な方法でコマンド ラインでパスワードを指定または提供する方法はありません。少なくとも私が知っているものではありません。パスワードを期待スクリプトにハードコードすることもできますが、それも良い解決策ではありません。

Michael が述べたように、パスワードなしの認証には鍵ペアを使用することをお勧めします。結局のところ、秘密鍵はファイル内のかなり大きなパスワードです。

解決策 2:

一連のコメントを避けるには:はい、これは安全ではありません (間違いなく安全ではありません)。隔離されたネットワーク上のラボの状況、または実稼働サーバーまたは潜在的に実稼働サーバーが完全にリセット/フォーマットされていない同様の状況でのみ実行することを強くお勧めします。

私の 2950 スイッチは秘密鍵/公開鍵をサポートしていないと思うので、これを設定したかったので、いつかその知識を得たいと思っていますが、まだそこにはいません。

エイリアスと sshpass を使用すると、これを実現できます。

<オール>
  • sshpass をインストール
  • .ssh/config を変更します 質問に記載されているユーザー名を含むファイル
  • 端末にエイリアスを追加します (私は .bashrc を使用しましたが、gloabl 設定に対して推奨します)
  • エイリアスを使用してターゲットにログイン
  • 私のエイリアスの例:

    alias ssc='sshpass -pcisco ssh'
    

    「cisco」はパスワードです。 -p とパスワードの間にスペースがないことに注意してください。

    使用法は次のとおりです (質問を参照):

    ssc server1
    

    注:これは、検索エンジンを使用している場合にのみ、タイトルの質問に回答します。質問の例のようなサーバーを使用している場合は、この回答ではなく、秘密鍵と公開鍵のペアを使用する必要があります

    解決策 3:

    はい、前述のとおり、パスワードを単純に保存する方法はありません。認証にはsshキーを使用することをお勧めします。

    まず、キーを生成してください:

    ssh-keygen
    

    次に、キーをサーバー/デスクトップにコピーします:

    ssh-copy-id -i .ssh/id_rsa.pub [email protected]:
    

    それで全部です。二度とパスワードを求められることはありません。

    また、一般的にパスワード認証を削除することをお勧めしますが、それはあなた次第です.

    解決策 4:

    ssh でこれを行う方法はありません。これは、可能な限り安全ではありません。

    ダニラが言ったように、expect スクリプトを使用できますが、私は気にしません。

    何を達成しようとしているのだろうか?あるサーバーから別のサーバーにホップしますか?この場合、ワークステーションで ssh-agent をセットアップして使用し、ターゲット ホストでエージェント転送を有効にします。このようにして、秘密鍵をコピーすることなく、資格情報交換をローカル エージェントにルーティングできます。

    解決策 5:

    ~/.local/bin のこのスクリプトを使用します ディレクトリ

    #!/usr/bin/bash
    
    ORIG_SSH=/usr/bin/ssh
    HOST=$1
    
    SSHPASS=$(grep -Pzo "Host $HOST"'\s*\n((?!Host).*\n)*#PS\s(\N+)\n' ~/.ssh/config|tail -n 2|head -n 1 | sed 's/#PS //')
    if [ -n $SSHPASS ]; then
        export SSHPASS
        sshpass -e $ORIG_SSH [email protected]
    else
        $ORIG_SSH [email protected]
    fi
    

    これにより、パスフレーズを #PS <password> として指定できます .ssh/config で ファイル。

    しかし、誰もが言うように、ssh-keys を使用する方が良いです。 ssh-agent で 可能な場合


    Linux
    1. パスワードでSSHログインを無効にする方法

    2. sshpass コマンド:SSH による非対話型パスワード認証

    3. リモートパスワードの入力を求める SSH による Rsync

    1. SSH はパスワードを要求せず、許可をすぐに拒否します

    2. SSH トンネルを介して SSH を転送する

    3. 逃げる方法!パスワードで?

    1. パスワードなしでRHEL7サーバーにSSHログイン

    2. パスワードなしでSSHログインを設定する方法

    3. sshpassを使用したLinuxでのSSHパスワードの自動化