■事象
・以前作ったcapistrano環境
set :user, 'ユーザ名'
set :password, 'パスワード'
を指定することで cap 〜 shell で対象ホストにパスワード入力なしでssh接続することが出来た。
・最近作ったcapistrano環境
set :user, 'ユーザ名'
set :password, 'パスワード'
を指定しているのに cap 〜 shell で対象ホストにパスワード入力を求められる、かつパスワード入力できない。。
■環境の差異を調べた
・以前作ったcapistrano環境
# gem list -l
*** LOCAL GEMS ***
bigdecimal (1.1.0)
capistrano (2.15.4)
capistrano-colorized-stream (0.2.3)
capistrano-ext (1.2.1)
capistrano_colors (0.5.5)
capistrano_rsync_with_remote_cache (2.4.0)
colorize (0.5.8)
highline (1.6.19)
io-console (0.3)
json (1.5.4)
minitest (2.5.1)
net-scp (1.1.1)
net-sftp (2.1.2)
net-ssh (2.6.7)
net-ssh-gateway (1.2.0)
rake (0.9.2.2)
rdoc (3.9.4)
rubygems-update (2.0.3)
・最近作ったcapistrano環境
# gem list -l
*** LOCAL GEMS ***
bigdecimal (1.1.0)
capistrano (2.15.4)
capistrano-colorized-stream (0.2.3)
capistrano-ext (1.2.1)
capistrano_colors (0.5.5)
capistrano_rsync_with_remote_cache (2.4.0)
colorize (0.7.7)
highline (1.7.2)
io-console (0.3)
json (1.5.5)
minitest (2.5.1)
net-scp (1.2.1)
net-sftp (2.1.2)
net-ssh (2.9.2)
net-ssh-gateway (1.2.0)
rake (0.9.2.2)
rdoc (3.9.5)
rubygems-update (2.4.7)
net-scp, net-ssh あたりのバージョン差異が怪しそうな気がする。
GitHubにこの問題が書かれていた。
※同じような事象の記事も見つけた。
http://qiita.com/takashibagura/items/33034c7529b553d2d0f9
ということで、他のgemとの関係でnet-sshのバージョンを固定できないのでssh_optionsで回避してみた。
# net-ssh-2.9.x 系でパスワード効かれてしまう問題対応
set :ssh_options, {
config: false
}
これで回避できた。