sftpのパスワードなしでログイン

このQ&Aのポイント
  • sftpのパスワードなしでログインする方法について調査しました。
  • SSH公開鍵認証を使用してパスワードなしのログインができるとの情報があります。
  • 実施した作業にも関わらずログインできない場合、設定やキーファイルの問題が考えられます。
回答を見る
  • ベストアンサー

sftpのパスワードなしでログイン

sftpのパスワードなしで自動化をしたいと考えています。 シェル内で他の処理をして、その後sftpで他のサーバーへコピー(put)します。 シェル内にsftpの起動する内容を記載するのですが、どうしてもパスワードを聞かれてしまいます。 調べてみるとSSH公開鍵認証を使用してパスワードなしのログインが出来るとありました。 試してみたのですが、どうしてもうまくログインできません。 原因と対応策を教えて頂けませんでしょうか。 OS:AIX5.3 おこなった作業は以下です。 サーバー側(ファイルを受ける側) 1、ユーザーのホームディレクトリ上でssh-keygen -t rsa を実行 2、.sshにid_rsa、id_rsa.pubができるので、id_rsa.pubをauthorized_keysへ変更する。 3、authorized_keysをクライアントに送る。 4、id_rsa、authorized_keysのアクセス権を600にする。 5、sshd.confgを編集 <編集箇所> RSAAuthentication yes   →コメントアウト PubkeyAuthentication yes  →コメントアウト AuthorizedKeyFile .ssh/authorized_keys  →コメントアウト PasswordAuthentication no →コメントアウト、yesをnoに変更 PermitEmptyPasswords yes →コメントアウト、noをyesに変更 ChallengeResponseAuthentication no →コメントアウト、yesをnoに変更 6、保存してsshdを再起動 クライアント側(ファイルを送る側) 1、ホームディレクトリの.sshにauthorized_keysを配置する。 2、authorized_keysのアクセス権を600にする。 3、sshdを再起動 以上の作業の後にクライアントからsftpでログインしようとすると、 以下のメッセージが出てしまいます。 sshも同様です。 (ログインしてホームディレクトリにいるとします) $ sftp -i ./ssh/authorized_keys ユーザー名@ホスト名 Enter passphrase for key '.ssh/authorized_keys': Permission denied (publickey). Connection closed $ ssh -i .ssh/authorized_keys ユーザー名@ホスト名 Enter passphrase for key '.ssh/authorized_keys': Permission denied (publickey).

質問者が選んだベストアンサー

  • ベストアンサー
  • astronaut
  • ベストアンサー率58% (303/516)
回答No.1

逆ですね 1. クライアント側で、ssh-keygen を用いてキーペアを作成 2. 公開鍵(id-dsa.pub)をサーバーの authorized_keysに登録

関連するQ&A

  • SFTPをパスフレーズなしで認証できない

    仕事で急きょWindowsServer2008にSFTPサーバを構築し、Linuxサーバから公開鍵認証(パスフレーズなし)で接続しなければいけなくなりました。 copSSHでSFTPサーバの構築は完了し、WinSCPでは鍵認証まで確認できたのですが、Linuxサーバからパスフレーズなしでの公開会議認証がうまくできません。 いろいろなサイトを参考に試しているのですがうまくいきません・・・。 急ぎと言うこともあり非常に困っています。 以下は自分でやった内容メモです。 どなたかお分かりの方がいらっしゃいましたらご教授お願い致します。 ▼作業メモ 1)WIndowsServer2008(サーバ側)にcopSSHをインストール 2)C:\Program Files (x86)\ICW\etc\sshd_configの設定変更 RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys TCPKeepAlive yes を有効にする RSAAuthentication yes PubkeyAuthentication yes AuthorizedKeysFile .ssh/authorized_keys を有効にする(yes/noも上記のとおり変更) PasswordAuthentication no PermitEmptyPasswords yes ChallengeResponseAuthentication no を有効にする(yes/noも上記のとおり変更) 3)Linuxサーバ(クライアント側)で鍵作成 ※パスフレーズなしで作成  $ cd ~/.ssh/  $ ssh-keygen -t dsa 4)サーバ側で、公開鍵を/home/.ssh/authorized_keysとしてコピー 5)クライアント側で、SFTPコマンドを実行  →しかし、下記のとおり失敗。  $sftp -oPort=10022 -oIdentityFile=/home/work/id_dsa sftpUser@192.168.xxx.xxx  Connecting to 192.168.xxx.xxx...   Connection closed

  • パスワード入力なしでsshログイン

    パスワード入力なしでsshログインしたいけど上手く行きません。 CentOS7のPCが2台(CentOS7-C, CentOS7-S)あります。 CentOS7-CからCentOS7-Sにパスワード入力なしでsshログイン(鍵認証でログイン)したいと思い、下記のサイトを参考にしながら悪戦苦闘しています。 パスワード入力なしでsshログイン(鍵認証でログイン) https://setting-tool.net/ssh-key-authorize <手順> クライアント側  ssh-keygen -t rsa でキー生成 サーバー側  クライアントで生成したキーを保存 <コマンド> ■前提 クライアント側 CentOS7-C 172.16.0.201 サーバー側 CentOS7-S 172.16.0.202 ■クライアント側設定 キーの発行 [root@CentOS7-C ~]# ssh-keygen -t rsa パーミッション設定 [root@CentOS7-C ~]# chmod 700 /root/.ssh [root@CentOS7-C ~]# chmod 600 /root/.ssh/* キーファイルをサーバー側に送る [root@CentOS7-C ~]# rsync -av -e ssh /root/.ssh root@172.16.0.202:/root/.ssh/from172.16.0.201 この時は手動でパスワード入力 ■サーバー側設定 クライアントからのキーファイルを別名で保存 [root@CentOS7-S ~]# cp /root/.ssh/from172.16.0.201/.ssh/id_rsa.pub /root/.ssh/authorized_keys キーファイルのパーミッション設定 [root@CentOS7-S ~]# chmod 600 /root/.ssh/authorized_keys ■クライアント側から接続 [root@CentOS7-C ~]# ssh root@172.16.0.202 Enter passphrase for key '/root/.ssh/id_rsa': 成功していればパスワードを聞かれずにログイン。 しかし、失敗しているので、パスワードを要求されている。 <考察> クライアントで生成したキーをサーバーにリモートコピーするだけなのに上手く行かない。 シンプルな話、 クライアントの /root/.ssh/id_rsa.pub と サーバーの /root/.ssh/authorized_keys が 同じであれば成立するというだけの話に思えるが、 クライアントでのcat /root/.ssh/id_rsa.pub と サーバーでのcat /root/.ssh/authorized_keys を見比べても全く同じなのに上手く行きません。 何が悪いのでしょうか?

  • 公開鍵でのログイン設定について

    さくらのVPSサーバの設定をしています。 公開鍵を利用したログインの設定を、以下の手順で行いました。 ・PuTTY Key Generatorで鍵ペアの作成  SSH-2 RSA(1024byte)パスフレーズ付き ・private kyeをローカルに保存して、PuTTYで読み込みファイルとして設定 ・publick keyを ~/.ssh/authorized_keys へ保存 ・/etc/ssh/sshd_configを設定(以下、有効な行を抜き出します) Port 22 Protocol 2 ServerKeyBits 1024 SyslogFacility AUTHPRIV PermitRootLogin no RSAAuthentication yes PasswordAuthentication no PermitEmptyPasswords no ChallengeResponseAuthentication no GSSAPIAuthentication yes GSSAPICleanupCredentials yes UsePAM yes AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT AcceptEnv LC_IDENTIFICATION LC_ALL X11Forwarding yes Subsystem sftp /usr/libexec/openssh/sftp-server 上記でログイン時にパスフレーズを求められるので、 公開鍵方式でログインできているのだと思うのですが いろいろなサイトを見て、以下の行のコメントを外す必要があるんじゃないかと思っています。 #PubkeyAuthentication yes #AuthorizedKeysFile ~/.ssh/authorized_keys ただ、この2行を有効にするとログインできず、Server refused our keyと表示されてしまいます。 公開鍵の認証をコメントアウトして、鍵の場所すら設定していないのに 公開鍵でログインできるものなのでしょうか?

  • RedHat6 SSH

    おそれいります。 RedHatEnterpriseにて、sshを開通させようとしているのですがうまくいきません。 ssh-keygen -t rsa ⇒ ssh-copy-idにてauthorized_keysを作成しました。 デーモンで立ち上げると接続できず、/usr/sbin/sshdで立ち上げると、クライアントからログインできるので、鍵のペアはとおっている模様です。 sshd_configの設定の問題なのか、様々試しましたがダメでした。 StrictModes yes PubkeyAuthentication yes RSAAuthentication yes PermitRootLogin no ChallengeResponseAuthentication no PermitEmptyPasswords no PasswordAuthentication no GSSAPIAuthentication yes GSSAPICleanupCredentials yes IgnoreRhosts yes IgnoreUserKnownHosts no PrintMotd yes StrictModes yes 以上のように設定しています。 よろしくお願いします。

  • SSHに繋がらない

    SSHから接続できず、ユーザー認証でエラーになってしまいます。 何かわかる方がいらっしゃいましたら、どうか少し教えて頂けないでしょうか。 OSはCentOS 6.2 です。 -------------------------------------------------------------------- ■サーバー -------------------------------------------------------------------- ★設定 # vi /etc/ssh/sshd_conf > Port 22 > Protocol 2 > AllowTcpForwarding yes > GatewayPorts no > MaxAuthTries 6 > MaxSessions 10 > > ServerKeyBits 1024 > StrictModes yes > > SyslogFacility AUTHPRIV > LogLevel DEBUG3 > > PubkeyAuthentication yes > PasswordAuthentication no > PermitEmptyPasswords no > AuthorizedKeysFile .ssh/authorized_keys > > PermitRootLogin without-password > UsePrivilegeSeparation yes > > Subsystem sftp /usr/libexec/openssh/sftp-server > X11Forwarding no ★鍵を作成 # su user1 $ ssh-keygen -t rsa -b 1024 $ Generating public/private rsa key pair. $ Enter file in which to save the key (/user1/.ssh/id_rsa): $ Enter passphrase (empty for no passphrase): $ Enter same passphrase again: $ Your identification has been saved in /user1/.ssh/id_rsa. $ Your public key has been saved in /user1/.ssh/id_rsa.pub. $ The key fingerprint is: $ 50:4f:72:d4:0a:d6:d2:24:98:96:7b:xx:xx:xx:xx:xx user1@myhost.com $ The key's randomart image is: ★鍵の名前を変更 $ cd /home/user1/.ssh/ $ cp id_rsa.pub authorised_keys $ rm id_rsa.pub ★パーミッション確認 $ drwxr-xr-x. root root /etc/ssh $ -rw------- root root /etc/ssh/sshd_conf $ drwxr-xr-x. user1 user1 /home/user1 $ drwxr-xr-x user1 user1 /home/user1/.ssh $ -rw-r--r-- user1 user1 /home/user1/.ssh/authorised_keys ★再起動 # service sshd restart # Stopping sshd: OK ] # Starting sshd: OK ] -------------------------------------------------------------------- ■クライアント -------------------------------------------------------------------- Windows7 teraterm ポート:22 SSHバージョン:SSH2 ユーザー名・パスフレーズを入力し、「RSA/DSA鍵を使う」に上記で作った「id_rsa」プライベート鍵をセット。 エラーメッセージ:「SSH2自動ログインエラー:ユーザー認証が失敗しました」 -------------------------------------------------------------------- ■ ログ(/var/log/secure)抜粋 -------------------------------------------------------------------- Aug 6 17:57:26 localhost sshd[21819]: debug1: temporarily_use_uid: 0/0 (e=0/0) Aug 6 17:57:26 localhost sshd[21819]: debug1: trying public key file /user1/.ssh/authorized_keys Aug 6 17:57:26 localhost sshd[21819]: debug1: restore_uid: 0/0 Aug 6 17:57:26 localhost sshd[21819]: debug1: temporarily_use_uid: 0/0 (e=0/0) Aug 6 17:57:26 localhost sshd[21819]: debug1: trying public key file /user1/.ssh/authorized_keys Aug 6 17:57:26 localhost sshd[21819]: debug1: restore_uid: 0/0 Aug 6 17:57:26 localhost sshd[21819]: Failed publickey for user1 from yyy.yyy.yyy.yyy port 58193 ssh2 Aug 6 17:57:26 localhost sshd[21819]: debug3: mm_answer_keyallowed: key 0x7fc196d47cf0 is not allowed Aug 6 17:57:26 localhost sshd[21819]: debug3: mm_request_send entering: type 22 Aug 6 17:57:26 localhost sshd[21819]: debug3: mm_request_receive entering Aug 6 17:57:26 localhost sshd[21820]: debug2: userauth_pubkey: authenticated 0 pkalg ssh-rsa Aug 6 17:57:26 localhost sshd[21820]: debug3: Wrote 68 bytes for a total of 2633 Aug 6 17:57:26 localhost sshd[21820]: Connection closed by yyy.yyy.yyy.yyy ※yyy.yyy.yyy.yyyは、teratermでアクセスしたIPです。 -------------------------------------------------------------------- ■備考 -------------------------------------------------------------------- 「nmap localhost」は「22/tcp open ssh」ですが、 グローバルIPで「nmap xxx.xxx.xxx.xxx」すると、22番がリストに出ませんでした。 ルーター、iptables、ともにポートは開けています。 (念のため、「iptables」と「system-config-firewall」は停止しています。) ログを見ると、sshdまで到達しているように見えるのですが・・・。

  • パスワードなしで ssh のログインを行いたい

    http://www.okweb.ne.jp/kotaeru.php3?q=588282 の続きです いろいろ回答をいただいて問題点が少しはっきりしたので、質問の焦点を絞って再投稿します。 2台の Windows XP の PC に、Cygwinをいれ、OpenSSH サーバをたてています(サービスとして動かす)。  「パスワードなしで ssh のログインを行いたい」 のですが、うまくいきません。設定は、次のように行いました。 (1) クライアントPCで公開鍵をつくる   $ ssh-keygen -t rsa で(パスフレーズを空白にして)公開鍵を作成(identity.pub) (2) ホストPCに鍵をコピーして、   % cat identity.pub >> .ssh/authorized_keys のように、authorized_keys に鍵の内容を追加する。 Linux がホストの場合は、以上の手続きで「パスワードフリー」になったのですが、 Cygwin ではだめです。   $ssh -1 192.168.0.5 1   Permission denied.   $ ssh 192.168.0.5   Permission denied (publickey,keyboard-interactive). のようになって、失敗してしまいます。

  • sshdでパスワード認証を禁止できない

    sshdでパスワード認証を禁止したいのですが、できません。 現在は、公開鍵認証でログインでき、パスワード認証でもログインできてしまう状態です。 ■やっったこと サーバー側から、「/etc/ssh/ssh_config」を以下のように修正 コメントアウトを外して、yesをnoに変更 【変更前】 # PasswordAuthentication yes 【変更後】 PasswordAuthentication no sshdのリスタート linux:/ # /etc/init.d/sshd restart Shutting down SSH daemon done Starting SSH daemon done 以下は、パーミッション700で、そのユーザーがオーナーになってます。 /home/ユーザー/.ssh /home/ユーザー/.ssh/authorized_keys2 ■状況 ・秘密鍵を使用したパスフレーズでログインできます。 ・パスワードでもログインできてしまいます。 ・PuTTYとWinSCPの2つで試しました。 パスフレーズとパスワードは、別の文字です。8桁 ■環境 サーバー側 ・SuSE Linux9.3 クライアント側 ・Windows2000 SP4 ・PuTTY Release0.58-jp20050503 ・WinSCP バージョン3.8.0(ビルド312) 宜しくお願いします。

  • SSHのパスワード無し認証(公開鍵暗号方式)

    過去ログに似た質問がいくつかあり、それらを参考にしましたが、何故か私の環境では上手く行かないので、何が原因なのか、どうすればよいのか、どなたか教えて頂けると嬉しく思います。 ■やりたいこと ・SSHでパスワード無しログイン ■環境条件 ・ローカルマシン(接続元)   VineLinux 3.1 ・ホストマシン(接続先)   VineLinux 3.1 ・両方のマシンに同じユーザ(hikaly)があり、ログインパスワードは同じものになっている。 ■手順 ローカルマシンにhikalyでログインし、 $ ssh-keygen -t rsa -N "" でパスフレーズ無しの鍵を作成する。 /home/hikaly/.ssh/id_rsa.pub というファイルを、ホストの /home/hikaly/.ssh/ にコピー。この際、WinSCP3を使って、ローカル→作業用Windowsマシン→ホスト とコピーを行いました。 ホストの /home/hikaly/.ssh/ には authorized_keys が存在しなかったので、コピーした rsa_id.pub を authorized_keys に改名。 ホスト側で root になって sshd_config を編集。 RSAAuthenticationを「yes」にして保存。sshdを再起動させました。 ■結果 これでローカル側からホスト側にパスワード無しで接続できるはずだと思いますが、 hikaly@hostmachine's password: とパスワードを尋ねられてしまいます。 いろいろとググッて調べてみたところ、「接続先(ホスト側)でssh-keygenしてできたrsa_id.pubを接続元(ローカル側)にコピーせよ。」と読める資料を見つけましたが、多くのものは「接続元でssh-keygenして接続先にコピーせよ。」と書かれています。ワケ分からなくなってきました。(;´ρ`) 私の質問もややこしくてワケ分からなくてすいません。

  • rootでのsshログインを許可したいのですが、何故か出来ません。

    rootでのsshログインを許可したいのですが、何故か出来ません。 sshサーバ環境 CentOS release 5.5 (Final) OpenSSH_4.3p2 sshサーバの「/etc/ssh/sshd_config」の内容は以下の通りです。 #「/etc/ssh/sshd_config」 Protocol 2,1 ListenAddress 0.0.0.0 SyslogFacility AUTHPRIV PermitRootLogin yes RSAAuthentication yes PubkeyAuthentication yes IgnoreRhosts yes PermitEmptyPasswords no PasswordAuthentication yes ChallengeResponseAuthentication no GSSAPIAuthentication yes GSSAPICleanupCredentials yes UsePAM yes AcceptEnv LANG LC_CTYPE LC_NUMERIC LC_TIME LC_COLLATE LC_MONETARY LC_MESSAGES AcceptEnv LC_PAPER LC_NAME LC_ADDRESS LC_TELEPHONE LC_MEASUREMENT AcceptEnv LC_IDENTIFICATION LC_ALL X11Forwarding yes Subsystem sftp /usr/libexec/openssh/sftp-server #---------- なお、その他の項目はコメントアウトされています。 調べてみますと「PermitRootLogin」をyesにしてsshdを再起動(/etc/rc.d/init.d/sshd restart)すれば良いとありますが、それでもrootでsshログインが出来ません。なお、一般ユーザではsshでログイン可能です。 sshdサーバでの「/var/log/secure」では、以下のようにあります。 Aug 27 16:52:22 hogehoge sshd[2543]: pam_unix(sshd:auth): authentication failure; logname= uid=0 euid=0 tty=ssh ruser= rhost=xxx.com user=root Aug 27 16:52:25 hogehoge sshd[2543]: Failed password for root from xxx.xxx.xxx.xxx port 37192 ssh2 原因として何が考えられますでしょうか。

  • SSHアクセスが出来ない

    Ubuntuにsshを入れて、公開鍵認証でwindowsからリモートアクセスしようとしましたができません。 Ubuntu側手順としては、 1. sudo ssh-keygen -t rsaで、パスフレーズ設定 2. sudo mv /root/.ssh/id_rsa.pub /root/.ssh/authorized_keysで公開鍵設定 3. sudo mv /root/.ssh/id_rsa /media/usbでUSBメモリに秘密鍵をコピー そしてwindows側は、TeraTermを使って、 ユーザ名、パスフレーズ(上記で設定したもの)、秘密鍵(USBメモリのid_rsaファイルを指定)を設定してログイン(SSH2) といった、通常の操作をしております。パスワード認証にすると問題なくできましたので、ネットワークの問題ではなさそうです。 なお、ubuntu側で事前にやった事としては、 /etc/.ssh/sshd_configファイルのPermitRootLoginをyes->noに変更、PasswordAutheticationをyes->noに変更のみです。設定後にSSHサーバを再起動させています。 詳しい方がいましたら、よろしくお願い致します。