Torihaji's Growth Diary

Little by little, no hurry.

SSHでVPSにログインするときに求められる鍵パス入力の自動化をしたい

はじめに

みなさん、こんにちは torihaziです

最近VPSSSHでログインして、色々いじっているのですが

タイトルのようなことをしたいと思い、かれこれ調べてやってみました。

どんな形に着地するかは分かりませんが、思考の過程も合わせて

書いていこうと思います。

不時着したらすいません。

では行ってみましょう!!

目次(ここをクリック)

現状

  1. 手持ちのmacからsshを使用してVPSにログインをしている
  2. sshの鍵をパス付きで作成している
  3. 毎回毎回パスを入力するのが面倒
  4. でもパスなしで作成するのは少し怖い

まず1をすること自体が億劫でした。

sshのログイン、コマンドに書き起こすと長いです。

ssh -i 秘密鍵のパス -p ポート番号 ユーザ@接続先
成功したらパス入力。

今はこれをスクリプトにしています。

他の方法もあるかもしれませんが、vimの練習も兼ねて。

中身は上のコマンドまんまです。

sh sshToVps.shみたいにいつもやっています。

ここから色々調べてやってみます。

試したこと

sshpassを使う

もっと手こずるかと思いましたが、答えが見つかってしまったかもしれません。

さてman sshpassmacのターミナルで打ってみると。

ない。which sshpassとしてもない。

あら。dnf search sshpassとしてもそもそもdnfすらない。

???

バカでした。やっていたのはmacのターミナルです。

dnfなんてあるわけありませんでした。

ここでHomebrewの出番というわけですね。

・・・

インストールしてきました。

macにHomeBrewを入れた - Torihaji's Growth Diary

Homebrewで実行されているコマンドの中身について - Torihaji's Growth Diary

多分 brew install sshpassみたいな感じでいけると思うのでやってみました。

なんかだめなようです。んなものはないと怒られました。

# brew install sshpass
・・・
Warning: No available formula with the name "sshpass". Did you mean sshs?
==> Searching for similarly named formulae and casks...
==> Formulae
sshs
・・・
# echo $?
1

色々記事が出ていましたが、どうやらだめなようです。

調べてみると私はこれでいけました。

# brew install hudochenkov/sshpass/sshpass

# echo $?
0
# which sshpass
/opt/homebrew/bin/sshpass

sshpassを使ってみる

使い方を見てみると、次の書式でいけるっぽいですね。

sshpass -p "鍵パスワード" ssh -i 秘密鍵のパス -p ポート番号 ユーザ@接続先

それでは運命の瞬間です。

失敗です。プロンプトが返ってきませんでした。

この人の記事で成功しそうです。

`sshpass` で秘密鍵のパスフレーズを自動入力する #SSH - Qiita

試しにやってみると。

成功しました。

これでsh スクリプト名とするだけでVPSにログインが可能になりました。

ちなみにスクリプトの中身は

sshpass -p "鍵パスワード" -P "Enter passphrase for key" ssh -i 秘密鍵のパス -p ポート番号 ユーザ@接続先

いやぁよかったよかった。

終わりに

意外と長いコマンドを毎回打たなければならなかったのでよかったです。

ただセキュリティ的によろしくないよとの記述が見受けられました。

何がだめなのでしょうか。

いつかそれに気づく日が来るのでしょうか。

そうなったらその時ですね。

とりあえずよかったです。