web-dev-qa-db-ja.com

sshログインは成功したが、scpパスワードで「Permission denied」が表示される

組織のリモートサーバーでいくつかのブログソフトウェアを起動しようとしています。 SSHキーを設定しようとしましたが、問題があり、SSHキーの問題を処理することよりもブログを起動して実行することのほうが重要であると判断したので、_ssh-keygen -R remoteserver.com_としました。

これで、_ssh -v [email protected]_と正しいパスワードで正常にログインできます。ログインしたら、移動して、読み取ることができるはずのファイルやディレクトリを読み取ることができます。

しかし、VIMを使用して既存の_-rw-r--r--_ファイルを編集しようとすると、読み取り専用として表示され、権限を編集しようとすると_chmod: file.ext: Operation not permitted_が得られ、scpをしようとするとローカルマシンからの新しいファイル。リモートユーザーのパスワードの入力を求められ、次に_scp: /home/path/to/file.ext: Permission denied_を取得します。

Sshキーを設定する前はこれらの問題は発生していなかったので、これらの異常はその副作用であると思われますが、これをトラブルシューティングする方法がわかりません。では、リモートユーザーとして編集機能を取り戻すには、私などの愚かなserver-newbが何をする必要があるのでしょうか。

補遺1:

ユーザーIDがローカルマシンとリモートサーバーで異なります。

  • Sshの場合は_ssh -v [email protected]_。
    • もし私がwhoamiならremoteuser
  • Scpの場合、ローカルユーザーとしてログインしているときに、ローカルディレクトリから_scp file.ext [email protected]:/path/to/file.ext_を使用して_file.ext_を実行します。
    • もし私がwhoamiならlocaluser

Scpを試してみた2つの異なるファイルの_ls -l_:

_-rw-r--r--@   1 localuser  localgroup    20 Feb 11 21:03 phpinfo.php
-rw-r--r--    1 root       localgroup     4 Feb 11 22:32 test.txt
_

私がVIMにしようとしたファイルの_ls -l_:

_-rw-r--r--   1 remoteuser  remotegroup      76 Jul 27  2009 info.txt
_

補遺2:

過去にgitリポジトリ用のssh-keysを設定しました。私はそれらを完全に破壊したくないので、 鹿 の一連の考え方に従って、_~/.ssh/_を_~/.ssh-bak/_に名前を変更して、さまざまな型をテストしましたアクセスの。端末コマンドと結果の要約版は以下のとおりです。最後から8行目まではすべて動いていると思います。

ssh -v

_localcomputer:~ localuser$ ssh -v [email protected]
OpenSSH_5.2p1, OpenSSL 0.9.8l 5 Nov 2009
debug1: Reading configuration data /etc/ssh_config
debug1: Connecting to remoteserver.com [###.###.###.###] port 22.
debug1: Connection established.
debug1: identity file /Users/localuser/.ssh/identity type -1
debug1: identity file /Users/localuser/.ssh/id_rsa type -1
debug1: identity file /Users/localuser/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.8p2 FreeBSD-20110503
debug1: match: OpenSSH_5.8p2 FreeBSD-20110503 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.2
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
The authenticity of Host 'remoteserver.com (###.###.###.###)' can't be established.
RSA key fingerprint is ##:##:##:##:##:##:##:##:##:##:##:##:##:##:##:##.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'remoteserver.com,###.###.###.###' (RSA) to the list of known hosts.
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /Users/localuser/.ssh/identity
debug1: Trying private key: /Users/localuser/.ssh/id_rsa
debug1: Trying private key: /Users/localuser/.ssh/id_dsa
debug1: Next authentication method: password
[email protected]'s password: 
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
Last login: Sun Feb 12 18:00:54 2012 from 68.69.164.123
FreeBSD 6.4-RELEASE-p8 (VKERN) #1 r101746: Mon Aug 30 10:34:40 MDT 2010
_

リモート権限

_[remoteuser@remoteserver /home]$ ls -l
total ###
-rw-r--r--   1 remoteuser remotegroup      76 Aug 12  2009 info.txt

[remoteuser@remoteserver /home]$ vim info.txt                                                                                                                                                                                                
~ {at the bottom of the VIM screen it tells me it's [read only]}                                                                                                                                                                                                    

[remoteuser@remoteserver /home]$ whoami 
remoteuser

[remoteuser@remoteserver /home]$ logout
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype [email protected] reply 0
debug1: channel 0: free: client-session, nchannels 1
Connection to remoteserver.com closed.
Transferred: sent 3872, received 12496 bytes, in 107.4 seconds
Bytes per second: sent 36.1, received 116.4
debug1: Exit status 0
_

scp -v

_localcomputer:localdirectory name$ scp -v phpinfo.php [email protected]:/home/www/remotedirectory/phpinfo.php
Executing: program /usr/bin/ssh Host remoteserver.com, user remoteuser, command scp -v -t /home/www/remotedirectory/phpinfo.php
OpenSSH_5.2p1, OpenSSL 0.9.8l 5 Nov 2009
debug1: Reading configuration data /etc/ssh_config
debug1: Connecting to remoteserver.com [###.###.###.###] port 22.
debug1: Connection established.
debug1: identity file /Users/localuser/.ssh/identity type -1
debug1: identity file /Users/localuser/.ssh/id_rsa type -1
debug1: identity file /Users/localuser/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_5.8p2 FreeBSD-20110503
debug1: match: OpenSSH_5.8p2 FreeBSD-20110503 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_5.2
debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
debug1: kex: server->client aes128-ctr hmac-md5 none
debug1: kex: client->server aes128-ctr hmac-md5 none
debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host 'remoteserver.com' is known and matches the RSA Host key.
debug1: Found key in /Users/localuser/.ssh/known_hosts:1
debug1: ssh_rsa_verify: signature correct
debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS
debug1: SSH2_MSG_NEWKEYS received
debug1: SSH2_MSG_SERVICE_REQUEST sent
debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,password
debug1: Next authentication method: publickey
debug1: Trying private key: /Users/localuser/.ssh/identity
debug1: Trying private key: /Users/localuser/.ssh/id_rsa
debug1: Trying private key: /Users/localuser/.ssh/id_dsa
debug1: Next authentication method: password
[email protected]'s password: 
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug1: Requesting [email protected]
debug1: Entering interactive session.
debug1: Sending command: scp -v -t /home/www/remotedirectory/phpinfo.php
Sending file modes: C0644 20 phpinfo.php
Sink: C0644 20 phpinfo.php
scp: /home/www/remotedirectory/phpinfo.php: Permission denied
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 1456, received 2160 bytes, in 0.6 seconds
Bytes per second: sent 2322.3, received 3445.1
debug1: Exit status 1
_
6
YANewb

リモートホストのユーザーアカウントに、/home/www/remotedirectory/ディレクトリへの書き込み権限がない可能性があります。これを実行するには、次のコマンドを実行します。

scp -v phpinfo.php [email protected]:/tmp/phpinfo.php

これが機能することが確認されたら、そのディレクトリに権限や所有権を設定できます。迅速な修正のために、ルートとしてのchmod 777 /home/www/remotedirectory/は機能しますが、これは安全なソリューションではありません。サーバーの使用方法に応じて、chgrpを使用してディレクトリのグループを変更し、そのディレクトリへのすべてのライターをchmod g+w /home/www/remotedirectory/に含めたいグループに変更することをお勧めします

3
Quetza

これは純粋に権限の問題です。 「remoteserver」のユーザー「remoteuser」には、/home/www/remotedirectory/phpinfo.phpにファイルを書き込む権限がありません。 scp -v ..コマンドの出力でこのエラーを確認してください:

debug1: Sending command: scp -v -t /home/www/remotedirectory/phpinfo.php
Sending file modes: C0644 20 phpinfo.php
Sink: C0644 20 phpinfo.php
scp: /home/www/remotedirectory/phpinfo.php: Permission denied
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1

最初に行ったように「remoteserver」にsshして確認し、このディレクトリのファイルをtouch試してみます。

$ ssh remoteuser@remoteserver

リモートサーバー上

$ touch /home/www/remotedirectory/afile
touch: cannot touch ‘/home/www/remotedirectory/afile’: Permission denied

次のコマンドで、このディレクトリの所有権を確認できます。

$ ls -ld /home/www/remotedirectory
drwxrwx---. 125 someuser somegroup 16384 Feb 22 14:03 /home/www/remotedirectory

したがって、ここで権限を変更するか、「remoteuser」をグループ「somegroup」に追加するように注意する必要があります。

2
slm

まあ私はあなたの最良のオプションはmakeすることだと思いますが、これはキーで動作しますが、ここに2つのオプションがあります

削除してみてください~/.ssh/authorized-keysディレクトリ、または全体~/.ssh/キーの残り物を取り除く

キーを適切に設定して、パスワードなしで楽しんでください! https://blogs.Oracle.com/jkini/entry/how_to_scp_scp_and

0
Adeerlike