2011-01-10 33 views
2

これはかなり変です。私は自分の公開鍵をホストマシンに追加しました。私は簡単に実行することができますnet/ssh経由でリモートホストに接続できません

ssh -p <port> -l <username> hostt.com 

リモートシェルを開くだけです。同じマシン上に展開するためのcapistranoスクリプトを実行することもできます。私はこの次の簡単なRubyスクリプト

require 'rubygems' 
require 'net/ssh' 

Net::SSH.start("hostt.com", 
       :port => <port>, 
       :username => <username> 
      ) do |session| 
    puts session.pwd 
end 

それは、以下の例外を除いて、すぐに拒否して接続しようとしていたとき、しかし:

`initialize': Connection refused - connect(2) (Errno::ECONNREFUSED) 

私はここに欠けているものはありますか?

あなたのお手伝いをお待ちしております。

+0

あなたは何をお勧めしますか? :) – intellidiot

+0

あなたが受け入れるあなたの質問への答えに "tick"をクリックしてください。それはあなたの質問に答えるのを気にした人の評判に加えます。 –

+0

私はそれを認識しませんでした。ありがとうAditya。 – intellidiot

答えて

2

今私は戻って問題に見て数日後、私は以下の微調整と迅速な成功を得た、わかりました:これで、

Net::SSH.start("<host>", "<user>", :port => "<port>") { |ssh| 
    puts "logged in" 
    puts ssh.exec!("ls -l") 
} rescue puts "failed to connect." 

だから、以前のものとの違いは、ユーザー名ですcaseはオプションキーのようにではなく、2番目の引数として渡されます。

0

SSHキーの場所を指定するか、SSH.startパラメータで指定したユーザー名で使用するパスワードを入力する必要があります。キーの場合、マップ値を配列:keys => ["path_to_key"]として渡す必要があります。私はなぜAPIがそのように設定されているのか分かりませんが、それはそうです。

+0

あなたの答えをお寄せいただきありがとうございます。これは問題を解決していません。 – intellidiot

関連する問題