今までサーバーに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-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 と入力するだけで自動ログインできるようになります!