Окна ЧМОД 600
Я пытаюсь подключиться к Amazon EC2 с помощью OpenSSH в windows, но мне нужно установить разрешения моего ключевого файла.
что такое эквивалент windows CHMOD 600
?
Я широко гуглил и нашел только blogspam.
EDIT: Windows 7, используя DOS.
11 ответов
Я понимаю, что это немного старая, но я только что нашел решение для себя в Windows 7. И, похоже, этот вопрос остался нерешенным. У меня были все те же ошибки, включая Cygwin missing cygintl-2.dll
on chmod
Как вы отметили в комментариях.
после долгих поисков и не найдя ответов, я побежал:
C:\Users\mztriz\.ssh>ssh -v
OpenSSH_3.8.1p1, OpenSSL 0.9.7 d 17 Mar 2004 использование: ssh [-1246AaCfghkNnqsTtVvXxY] [- b bind_address] [- c cipher_spec] [-Д порт] [- e escape_char] [- F configfile] [- I identity_file] [-L порт:хост:значение по умолчанию-false] [-л аргумент] [-м mac_spec] [-o опцию] [- P порт] [- R порт: хост: hostport] [пользователь@] имя хоста [команда]
как вы можете видеть, версия OpenSSH, которую я запускал, была довольно устаревшей. Тем не менее, я не знал этого, потому что быстрый поиск google OpenSSH for Windows
возвращает эту старую версию.
после просмотра версии я нашел OpenSSH для Окна 6.9p1-1 в разделе загрузки данного веб-сайта.
эта новая версия OpenSSH, кажется, исправить все проблемы, которые вы упомянули.
измените разрешения так, чтобы:
- ключевой файл не наследуется от контейнера
- вы (владелец) полный доступ
- удалить записи разрешений для любых других пользователей (например, SYSTEM, Administrator)
- добавить запись для специального пользователя все и изменить разрешения для этого пользователя, чтобы запретить для всех разрешений:
- щелкните правой кнопкой мыши файл в Проводнике Windows и выберите Свойства > безопасность > Дополнительно, чтобы получить диалоговое окно Дополнительные параметры безопасности.
- перейдите на вкладку разрешения и нажмите кнопку Изменить разрешения.
- Нажмите кнопку Добавить, введите в поле "Имя объекта", нажмите кнопку Проверить имена, затем нажмите кнопку ОК.
- в диалоговом окне запись разрешений установите флажок в столбце запретить для полного контроля.
- нажмите OK в каждом диалоговом окне, чтобы выполнить резервное копирование и закрыть диалоговое окно свойств файла.
теперь scp будет читать разрешения 0400 и будут счастливы. Что-то в этом роде.
У меня та же проблема. Решением, которое сработало, было установить режим совместимости ssh.exe для Windows XP SP3.
щелкните правой кнопкой мыши файл / dir, выберите Свойства, Затем безопасность. Нажмите кнопку Дополнительно, затем изменить. Снимите флажок " наследуемый "и выберите" Удалить " в диалоговом окне. Удалите все явные разрешения слева, добавьте разрешение "полный доступ" к вашему имени пользователя.
предпочитаю Cygwin над шпаклевка и вы можете просто запустить команду chmod в cygwin, чтобы изменить разрешение ключа PEM на 400, тогда вам хорошо идти.
myuser@myuser-HP ~
$ ssh -i /cygdrive/c/Users/myuser/Downloads/mykey.pem ec2-user@xx.xx.xx.xx
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: UNPROTECTED PRIVATE KEY FILE! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0550 for '/cygdrive/c/Users/myuser/Downloads/mykey.pem' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
Load key "/cygdrive/c/Users/myuser/Downloads/mykey.pem": bad permissions
Permission denied (publickey).
myuser@myuser-HP ~
$ chmod
chmod: missing operand
Try 'chmod --help' for more information.
myuser@myuser-HP ~
$ chmod 400 /cygdrive/c/Users/myuser/Downloads/mykey.pem
myuser@myuser-HP ~
$ ssh -i /cygdrive/c/Users/myuser/Downloads/meykey.pem ec2-user@xx.xx.xx.xx
__| __|_ )
_| ( / Amazon Linux AMI
___|\___|___|
https://aws.amazon.com/amazon-linux-ami/2015.09-release-notes/
[ec2-user@ip-xxx ~]$ ohyeah I am in!
для unix & OSX
все просто:
chown -R $USER:users ~/.ssh/
chmod -R 600 ~/.ssh/
Для Windows
если файл является символической ссылкой windows (NTFS), вышеуказанное не будет работать. Вам нужно сделать это обычным файлом. Не знаю почему.
если у вас нет openssh или cygwin, используйте chocolatey, чтобы легко установить его с помощью шоколадный.
choco install cyg-get
Открыть Терминал Cygwin который был установлен с chocolatey и запустить (Примечание это ssh-keygen
создает новые ключи):
cyg-get install openssh
ssh-keygen
cd ~/.ssh && explorer.exe .
проверьте наличие ключей (или замените их нужными ключами), а затем в Cygwin shell:
chown -R $USER:users ~/.ssh/
chmod -R 600 ~/.ssh/
или для редкого случая, который вы используете (и сгенерировали ключи) шоколадный в СШ пакет:
chown -R $USER:users /cygdrive/c/Users/$USER/.ssh
chmod -R 600 /cygdrive/c/Users/$USER/.ssh
У меня та же проблема. Решением, которое сработало, было установить режим совместимости ssh.exe для Windows XP SP3.
- > этот ответ работает для windows 7
сегодня одним из рекомендуемых способов в Windows было бы использование PowerShell и Get-Acl
и Set-Acl
командлетов.
вот пример, чтобы убедиться, что только текущий пользователь имеет разрешение на папку и все файлы в ней-аналогично тому, что рекомендуется для .ssh
папка в Unix / Linux / OS X:
# get current ACL of directory
$Acl = Get-Acl -Path $Directory
# remove inheritance ($true) and remove all existing rules ($false)
$Acl.SetAccessRuleProtection($true,$false)
# create new access rule for
# current user
# with FullControl permission
# enable inheritance for folders and files
# enable it for the specified folder as well
# allow these conditions
$AcessRule = [System.Security.AccessControl.FileSystemAccessRule]::new(
$env:USERNAME,
"FullControl",
([System.Security.AccessControl.InheritanceFlags]::ContainerInherit -bor [System.Security.AccessControl.InheritanceFlags]::ObjectInherit),
System.Security.AccessControl.PropagationFlags]::None,
[System.Security.AccessControl.AccessControlType]::Allow)
# add access rule to empty ACL
$Acl.AddAccessRule($AcessRule)
# activate ACL on folder
Set-Acl -Path $SgwConfigDirectory -AclRule
Подробнее см.
Я столкнулся с той же проблемой в windows 10. Я исправил это, добавив своего пользователя и предоставив разрешения на изменение, чтение и выполнение, чтение и запись. Я удалил всех остальных пользователей. Вот как это выглядит после удаления всех других разрешений:
скопируйте файл в систему Unix через scp и сделайте chmod 600 в файл. Затем перенесите файл обратно на компьютер Windows. У меня получилось.
на самом деле не отвечая на тот же вопрос, но я смог подключиться к EC2, используя следующие инструкции: