Techioz Blog

Ruby の net-sftp を使用したパスフレーズ キーベースの認証

概要

Ruby の net-sftp によるキーベースの認証という質問に基づいて、次を使用してキーベースの認証で SFTP できます。

Net::SFTP.start(host, "user", keys:['~/.ssh/my_key']) do |sftp|
   sftp.upload! "/local/file.tgz", "/remote/file.tgz"
end

しかし、パスフレーズを必要とするキーに対してこれを機能させることはできません。そのホスト上でユーザーのログインを求めるプロンプトが表示されるだけです。キーのパスフレーズを入力するために渡すものが足りないのでしょうか?それとも、これには ssh-agent を使用する必要がありますか?

解決策

パスフレーズ オプションがあります。

パスフレーズを指定しない場合は、non_interactive オプションを使用しない限り、パスフレーズの入力を求められます。