Capistrano deploy時に発生する SocketError: getaddrinfo: Temporary failure in name resolutionのエラーの原因と解決方法
エラーメッセージの意味
ソケットエラー: 名前解決のために一時的に失敗しました。
エラー原因
~/.ssh/know_hostsファイルに記載されているリモートサーバーへのsshによる接続情報が古くなっているために、ssh接続できずにエラーになってしまいます。
解決方法
ssh-keygen -R remote_host_name
上記コマンドにより古いssh接続情報を削除する。
(又は手動で vi ~/.ssh/known_hosts
でファイルを開いて、対象のリモートサーバーのhostnameが書かれた該当の1行を削除する。)
その後再度sshコマンドを実行する。
これにより、新規ssh接続とみなされて、再びssh接続用の情報を known_hostsファイルに保存するか確認するメッセージが表示されるので 'yes'と答えて保存する。
↓古いssh情報削除後にsshを再度実行した時のターミナルの出力表示例
$ ssh ***.**.***
The authenticity of host ' ()' can't be established.
RSA key fingerprint is .
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '' (RSA) to the list of known hosts.
's password:
参考
Qiita:SSH接続エラー回避方法:.ssh/known_hostsから特定のホストを削除する/削除しないで対処する3つの方法