web-dev-qa-db-ja.com

SOCKSプロキシのログイン時にSSH -Dトンネルを自動開始するにはどうすればよいですか?

SSHトンネルを開始したい場合

ssh -d 9000 user@userserver

これは、ホスト「userserver」の「user」という名前のユーザーに対してポート9000で動的トンネルを開くための1つのソリューションです

ただし、ログインしてトンネルを開始するたびに端末を開く必要がないように、Ubuntuでこのプロセスを自動化するにはどうすればよいですか?ログインした時点でSSHになりたい。

Bashファイルを作成できることは知っていますが、最初のコマンドの後にプロンプ​​トが表示されるので、サーバーユーザーのパスワードをプレーンテキストで保存する必要はありませんか?

9
dalanmiller
  1. パスワードなしのSSHログインを設定します この回答による

    • ssh-keygen(パスワードの入力を求められますが、空白のままにします)

    • ssh-copy-id user@userserver(最後にSSHログインパスワードを入力します)

  2. SSHのスタートアップエントリを追加します。

enter image description here

enter image description here

9
Oxwivi

Source Labが提案したssh-keyセットアップを使用する方法はありますが、パスフレーズを使用してキーをセットアップし、ssh-agentがマシン上で実行されていることを確認してください。

その方法にはいくつかの利点があります:-sshコマンドを発行するたびに、自動化されたパスワードなしのログイン(最初のブート/ログインを除く)を取得できます-キーにパスフレーズがあるため、安全です標準であり、ほとんどのSSHサーバーインストールでサポートされます

SSHキー認証をセットアップするには:

Ssh-agent/keychainを使用するには(ログインセッション全体でパスフレーズをキャッシュするため):

起動時にトンネルの作成を自動化する限り、1つのアイデアは、トンネルを開始する簡単なシェルスクリプトを作成することです。

~$ Sudo cat <<EOF >> /usr/local/bin/start_tunnel.sh
ssh-add # ensure key is added to agent
ssh -D 9000 user@userserver # substitute real server in here (of course)
EOF
~$ chmod +x /usr/local/bin/start_tunnel.sh

次に、それをスタートアッププログラムとして追加します([システム]-> [設定]-> [スタートアップアプリケーション])。

1
kwiksand

私はこれのためにちょっとしたスクリプトを書きました: https://github.com/PHLAK/Soxy

0
PHLAK