Я пытаюсь установить программное обеспечение для ведения блогов на удаленном сервере организации. Я попытался настроить SSH-ключ, но у меня возникли проблемы, и я решил, что создание и запуск блога важнее, чем решение проблемы с SSH-ключом, поэтому я ssh-keygen -R remoteserver.com
.
Теперь я могу успешно войти в систему с ssh -v remoteuser@remoteserver.com
и правильный пароль. После входа в систему я могу перемещаться и читать любой файл и каталог, которые я могу прочитать.
Но когда я пытаюсь отредактировать существующий -rw-r--r--
файл с VIM, он отображается как доступный только для чтения, если я пытаюсь изменить разрешения, я получаю chmod: file.ext: Operation not permitted
, и если я попытаюсь scp
новый файл с моей локальной машины, мне предлагается ввести пароль удаленного пользователя, а затем я получаю scp: /home/path/to/file.ext: Permission denied
.
Поскольку у меня не было ни одной из этих проблем до того, как я попытался настроить ключ ssh, я подозреваю, что эти аномалии являются побочным эффектом этого, но я не знаю, как это исправить. Так что же нужно сделать глупому новичку-серверу, вроде меня, чтобы вернуть возможность редактирования в качестве удаленного пользователя?
Мои идентификаторы пользователей на моей локальной машине и на удаленном сервере различаются.
ssh -v remoteuser@remoteserver.com
. whoami
я получил remoteuser
scp file.ext remoteuser@remoteserver.com:/path/to/file.ext
из локального каталога с file.ext
при входе в систему как локальный пользователь. whoami
я получил localuser
В ls -l
для двух разных файлов я пробовал scp:
-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
В ls -l
для файла, который я пробовал в VIM:
-rw-r--r-- 1 remoteuser remotegroup 76 Jul 27 2009 info.txt
Раньше я настраивал ssh-ключи для репозиториев git. Я не хочу их полностью уничтожать, поэтому в попытке последовать оленьход мыслей я переименовал ~/.ssh/
к ~/.ssh-bak/
, затем протестировали различные типы доступа. Сокращенная версия команд и результатов терминала представлена ниже; Думаю все работает до 8 строчки с конца.
ssh -v
localcomputer:~ localuser$ ssh -v remoteuser@remoteserver.com
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
remoteuser@remoteserver.com's password:
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
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 eow@openssh.com 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 remoteuser@remoteserver.com:/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
remoteuser@remoteserver.com's password:
debug1: Authentication succeeded (password).
debug1: channel 0: new [client-session]
debug1: Requesting no-more-sessions@openssh.com
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
У вашей учетной записи на удаленном хосте, вероятно, нет разрешений на запись в /home/www/remotedirectory/
каталог. Вы можете проверить это, запустив:
scp -v phpinfo.php remoteuser@remoteserver.com:/tmp/phpinfo.php
Как только будет подтверждено, что это работает, вы можете установить разрешения и / или право собственности на этот каталог. Для быстрого исправления, chmod 777 /home/www/remotedirectory/
как root будет работать, но это небезопасное решение. В зависимости от того, как используется сервер, лучше было бы изменить группу каталога, используя chgrp
в группу, в которую вы хотите, чтобы все писатели этого каталога были в и chmod g+w /home/www/remotedirectory/
Это чисто проблема с разрешениями. Пользователь "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
Вы можете подтвердить это, введя ssh'ing в "удаленный сервер", как вы это делали изначально, и попробовать 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 варианта
попробуйте удалить ~/.ssh/authorized-keys
каталог или весь ~/.ssh/
избавиться от остатков ключей
попробуйте настроить ключи правильно и получайте удовольствие без паролей! https://blogs.oracle.com/jkini/entry/how_to_scp_scp_and