質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Capistrano

Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

Q&A

解決済

1回答

2895閲覧

Capistrano2でSSHログインでパスワード認証が使用されず、公開鍵認証を使用しようとしてエラーになる

onigirimogumogu

総合スコア17

CentOS

CentOSは、主にRed Hat Enterprise Linux(RHEL)をベースにした、フリーのソフトウェアオペレーティングシステムです。

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

RubyGems

RubyGemsはRubyによるプログラミングのためのパッケージマネジメントツールです。ユーザはこれを使用することで、Rubyライブラリのダウンロードやアップデートや、依存関係の自動解決が可能になります。

SSH

SSH(Secure Shell)は、セキュアチャネルを通してデータを交換するためのネットワークプロトコルです。リモートサーバーへのコマンド実行やファイル転送を行う時に一般的に使用されます。

Capistrano

Rubyで書かれたサーバオーケストレーションで、複数のサーバでスクリプトを実行する際に用いられます。主な使用用途はWebアプリケーションのデプロイメントです。 アプリケーションのバージョンアップ自動化、およびデータベースの変更などもできます。

0グッド

0クリップ

投稿2016/02/24 08:22

編集2016/02/24 08:36

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ではパスワード認証としたいです。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

自己解決

下記コード追加で自己解決しました。

set :ssh_options, {
:config => false,
:keys => []
}

投稿2016/02/26 09:05

onigirimogumogu

総合スコア17

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問