Итак, я нашел эту тему, и последний элемент может быть релевантным.http://centos.org/modules/newbb/viewtopic.php?topic_id=30515&forum=42
(кстати, ssh -vvv даст вам отладочный уровень 3 с еще более непостижимыми деталями).
Поэтому, безусловно, наиболее распространенная проблема заключается в том, что разрешения дляКаталог .ssh (как на локальном, так и на удаленном хостах) каким-то образом становится чрезмерно разрешающим, и ssh откажется использовать учетные данные.Пермь в каталоге .ssh
должна быть rwx
только для пользователя (восьмеричное chmod 700
), rw
для пользователя с закрытым ключом и парами ключей .pem, и group / all для чтения для других файлов.
drwx------ 11 tharrison staff 374 Mar 1 16:37 .
drwxr-xr-x+ 79 tharrison staff 2686 Mar 8 10:43 ..
-rw-r--r-- 1 tharrison staff 128 Aug 16 2010 .ssh-agent
-rw-r--r-- 1 tharrison staff 132 Dec 29 14:42 config
-rw------- 1 tharrison staff 1675 Apr 20 2009 id_rsa
-rw-r--r--@ 1 tharrison staff 405 Apr 20 2009 id_rsa.pub
-rw-r--r-- 1 tharrison staff 2805 Mar 5 08:33 known_hosts
-rw-------@ 1 tharrison staff 1693 Apr 27 2011 my-aws-keypair.pem
SSH (правильно) параноидален в отношении того, что он будет отправлять в любой журнал - он не хочет давать какие-либо подсказки о том, что работает или не работает, так как эти советы могут быть использованы для обнаруженияуязвимости и т. д. Таким образом, журналы могут быть полезны ... иногда.
Но я не уверен, что все это правильно, потому что я думаю, что вы сказали, что можете успешно войти в систему из командной строки, используяssh, и этот scp не работает - этот тип исключает проблемы аутентификации ssh (как я уже сказал, scp на самом деле просто ssh), поэтому стоит удостовериться, что пользователь, который входит в систему как удаленно, имеетразрешения на запись файла в папку, в которую вы его отправляете.
Возможно, попробуйте ssh -i mykeypair.pem myuser@myremote.host 'touch ~/foo'
Все значения, начинающиеся с "my", должны быть заменены правильными значениями, например, mykeypair.pem
должен иметь путьи имя пары ключей, которую вы используете для входа в систему. Если это работает, он создаст файл с именем foo в домашнем каталоге myuser на сервере myremote.host - войдите в систему, используя ssh без командыи проверьте - тогда у вас есть соответствующие разрешения, по крайней мере, для этого каталога.Теперь попробуйте настоящий каталог.
Если произойдет сбой, проверьте, что все каталоги в пути - это group-x или all-x, а целевой каталог - group или all rwx.
EDIT: исправлена команда test sshи расширил процедуру и уточнил.