« NetVault11を触ってみる | メイン | 大阪の舞洲でバーベキュー »

sshコマンドで、鍵を使わずにパスワード認証で接続するオプション

sshコマンドでサーバに接続しようとするときに、ローカルに「~/.ssh/id_rsa」として秘密鍵を保持していると、デフォルトでは鍵認証での接続を試すようです。

その際、id_rsa自身がパスワード保護されていると、まずはid_rsa自身のパスワードを聞かれます。

しかし、鍵を使わずにパスワード認証でログインしたいとき、無駄にid_rsaのパスワードを聞かれるのは面倒です。

さらにいうと、Teratermマクロで、踏み台サーバを経由して目的のサーバにssh接続する動作をさせるとき、踏み台サーバにid_rsaがあると、「ssh user@server」の次に入力すべきは目的のサーバのパスワードなのに、id_rsaのパスワードを求められてそこへ入力することになってしまい、Teratermマクロがバグります。

そこで、sshコマンドにオプションを付けることで、いきなりパスワード認証でログインさせることができました。

コマンドは

ssh user@192.168.179.17 -o PreferredAuthentications=password -o PubkeyAuthentication=no

です。(userはユーザ名、192.168.179.17は目的のサーバのアドレスに読み替えてください)



踏み台サーバを経由して、目的のサーバにログインするTeraTermマクロを作ってみました。

下記のコードを.ttlファイルとして保存してttpmacro.exeに食わせると、目的のサーバに【パスワード認証で】ログインできます。

HOSTADDR = "192.168.179.16" ;;踏み台のサーバのアドレス
USERNAME = "root" ;;踏み台のサーバのユーザ名
PASSWORD = "password" ;;踏み台のサーバのパスワード

COMMAND = HOSTADDR
strconcat COMMAND ":22 /ssh /2 /auth=password /user="
strconcat COMMAND USERNAME
strconcat COMMAND " /passwd="
strconcat COMMAND PASSWORD

;; 踏み台サーバへ接続
connect COMMAND


pause 3 ;;待つ


sendln "hostname"  
pause 2 ;;待つ


;;目的のサーバへ接続
sendln "ssh root@192.168.179.17 -o PreferredAuthentications=password -o PubkeyAuthentication=no"
pause 2 ;;待つ

sendln "password" ;;目的のサーバのパスワードを入力
pause 2 ;;待つ


sendln "hostname"  ;;←1画面ごとの停止を解除
pause 2 ;;待つ


;;sendln "exit"  ;;←ログアウト

トラックバック

このエントリーのトラックバックURL:
http://www.ddhost.jp/mt/mt-tb.cgi/1141

About

2016年05月29日 15:36に投稿されたエントリーのページです。

ひとつ前の投稿は「NetVault11を触ってみる」です。

次の投稿は「大阪の舞洲でバーベキュー」です。

他にも多くのエントリーがあります。メインページアーカイブページも見てください。