capistranoで下記スクリプト"hogehoge.cap"を作成して実行しました。
環境は下記の通りです。
--環境--
CentOS6.6
ruby-1.9.3-p194
capistrano (2.14.2)
net-scp (1.1.0)
net-ssh (2.6.6)
--hogehoge.cap----------------------------------------------
set :user, 'hoge'
set :password do
Capistrano::CLI.password_prompt('hoge Password: ')
end
task :hoge_ls, :roles => "#{target}", :max_hosts => 1 do
run "ls -ltr"
end
実行コマンド(一般ユーザhogeで実行)
cap -f hogehoge.cap hoge_ls
すると実行結果は下記の通りとなりました。
秘密鍵を使用してlocalhostにSSHしようとしているのですが、
パスワードを使用してSSH接続をしたいです。
--結果------------------------------------------------------
cap -f hogehoge.cap hoge_ls
- 2016-MM-DD HH:mm:ss executing `hoge_ls'
- executing "ls -ltr"
servers: ["localhost"]
connection failed for: localhost (Errno::ENOENT: No such file or directory - /home/hoge/.ssh/id_rsa)
ただし、
「set :user, 'hoge'」のhogeをrootに変えて実行すると
下記の通り、パスワード入力が表示されます。
やりたいことは「set :user, 'hoge'」で下記の画面が出てくることです。
cap -f hogehoge.cap hoge_ls
- 2016-MM-DD HH:mm:ss executing `hoge_ls'
- executing "ls -ltr"
servers: ["localhost"]
hoge Password:
hogeユーザで秘密鍵を使用せず、パスワード認証を行う方法をご教示いただけないでしょうか。
また、rootとhogeユーザで実行結果が異なる理由がわかれば合わせて教えてください。
※追記
/home/hoge/.ssh
フォルダを消すと「hoge Password:」が出てきました。
$HOME/.sshフォルダがあるとキーを見ようとする??
ただ、.sshフォルダの有無にかかわらずCapistranoではパスワード認証としたいです。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。