読者です 読者をやめる 読者になる 読者になる

女子WEBエンジニアのTechメモ

都内の某企業でマーケッターやってます。営業→WEBエンジニア・オフショア開発チーム駐在→マーケッター(SEO)ちょっと便利だなと思ったことをメモしています。

sshpassを使って、自動でパスワードありのsshログインをしたい!【Mac】

今までサーバーにSSHログインするとき、鍵認証の方法を使っていたのでパスワードを使う機会があまりなかったのですが、今回パスワードを使ってのログインをする機会がありました。

「鍵認証にはできないんだけど、毎回入力するのも面倒・・・コマンドを保存しておいて、一瞬で自動ログインできる方法が知りたい!

と言っていたら先輩が教えてくれたのが、sshpassを使ってパスワードありの方法で自動ログインするというもの!

簡単そう~と思っていたのですが、インストールで意外とつまったので書きとめておきます。。。

sshpassインストールで詰まったところ

※ネット上ではHomebrewを使ってのinstall方法が多かったのですが、なぜかcompileでエラーになってinstallできませんでした。

>||
configure: error: cannot run C compiled programs.
If you meant to cross compile, use `--host'.
See `config.log' for more details
Warning: It appears you have MacPorts or Fink installed.
Software installed with other package managers causes known problems for
Homebrew. If a formula fails to build, uninstall MacPorts/Fink and try again.
|

同じエラーになる方は、下部の「ソースコードをダウンロードする方法」がオススメです♪

Homebrewを使ってinstallする方法

HomebrewがInstallされているか確認する。

下記のコマンドを試し、結果が表示されればHomebrewがInstallされている。

brew -v

(HomebrewがInstallされていない場合、Installをしてください。「OS名 Homebrew install」で検索!)

Homebrewをupdateする

下記のコマンドを行い、Homebrewをupdateする。

brew update

下記のコマンドを使って、sshpassをInstallする。

brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb

brew sshpass などのコマンドではエラーになります。そのため、↑の方法でInstallします。

ただ、私はここで下記のエラーになりました(;_;)

configure: error: cannot run C compiled programs. If you meant to cross compile, use `--host'. See `config.log' for more details Warning: It appears you have MacPorts or Fink installed. Software installed with other package managers causes known problems for Homebrew. If a formula fails to build, uninstall MacPorts/Fink and try again.

ports -v や fink -v のコマンドを試したりディレクトリを参照したりしても、MacPortsもFinkもInstallされていないのになぜ・・・(;_;)

というわけで私は下記の方法でやりました★

ソースコードをダウンロードする方法

下記のURLからsshpassのsource codeをDownloadする

sshpassのダウンロード

ダウンロードしたファイルを解凍して、該当ディレクトリに移動する

ここでは例として、sshpass-1.05というディレクトリに移動しています。
>||
cd {pass}/sshpass-1.05
|

下記コマンドでInstallする

./configure && make && make install

sshpass -v と打ってみて結果が表示されていればInstall成功です!

sshpassがInstallできたら、自動ログインの設定をする

sshpassを使った自動ログインの設定をしていきます。

sshpassを使ってsshログインするには、下記のようにコマンドを記述します。

sshpass -p 'password' ssh -o StrictHostKeyChecking=no username@hostname

※StrictHostKeyChecking=noを書かないと認証のメッセージが出て自動ログインできなくなるので、記述するようにします。

このコマンドを毎回入力するのは手間なので、bashrcにエイリアス登録しておきます。

vim ~/.bashrc

.bashrcの中に、下記を記述します。

alias waaaa = "sshpass -p 'password' ssh -o StrictHostKeyChecking=no username@hostname"

再度bashrcを読み込ませておきます。

source ~/.bashrc

これで waaaa と入力するだけで自動ログインできるようになります!