2つのUbuntu 12.04サーバー間に完全なSSHトンネルを作成したい(SSHuttleについて知りましたが、ファイル記述子の処理にバグがあるため、高負荷でクラッシュします)IPSECと非常によく似ていますが、必要なのは2つだけです本格的なIPSEC構成を作成する複雑さをホストし、やり過ぎです。
私が達成したいのは、server1とserver2の間のすべてのデータが暗号化され、何千ものSSH動的ポートを作成する必要がないことです。
この回答は brandonchecketts に属しています。
Host-AおよびHost-Bという名前の2つのホストがあるとします。次に、これらの2つの間にSSHトンネルを作成し、トンネルが常に稼働していることを確認します。
Host-Aに対して構成を行う必要があります。
端末を開き、ルートに切り替えて、コードを1つずつ貼り付けます
useradd -d /home/tunnel tunnel
passwd tunnel
su - tunnel
次のステップはSSHキーの作成です
ターミナルに貼り付け
ssh-keygen
そして、すべてのプロンプトに対してデフォルトの選択肢を選択し、キーをコピーします
cat /.ssh/id_rsa.pub
今度は、Host-Bの構成を行う必要があります。
ターミナルを開いてこれらのコマンドを実行します
useradd -d /home/tunnel tunnel
passwd tunnel
su - tunnel
そしてターミナルタイプで
mkdir .ssh
vi .ssh/authorized_keys
ターミナルでファイルを開き、上記のHost-Aからコピーしたキーを貼り付けます。
端末タイプで
vi /home/tunnel/check_ssh_tunnel.sh
そして貼り付け
createTunnel() {
/usr/bin/ssh -f -N -L13306:hostb:3306 -L19922:hostb:22 tunnel@hostb
if [[ $? -eq 0 ]]; then
echo Tunnel to hostb created successfully
else
echo An error occurred creating a tunnel to hostb RC was $?
fi
}
## Run the 'ls' command remotely. If it returns non-zero, then create a new connection
/usr/bin/ssh -p 19922 tunnel@localhost ls
if [[ $? -ne 0 ]]; then
echo Creating new tunnel connection
createTunnel
fi
保存して閉じ、それを実行可能にします
chmod 700 /home/tunnel/check_ssh_tunnel.sh
スクリプトを実行すると、リモートPCでトンネルが開始されます。
上記のリンクを読んでください。