Reb*_*ott 31 windows ssh cygwin
我正在尝试在 Cygwin(在 Windows 7 中)中使用 ssh.exe。我复制了一个config文件到c:\cygwin\home\[USERNAME]\.ssh. 当我运行ssh(例如,ssh -vT git@bitbucket.org)时,我收到以下错误:
OpenSSH_5.9p1、OpenSSL 0.9.8r 2011 年 2 月 8 日在 /home/[USERNAME]/.ssh/config 上的所有者或权限不正确
如何ssh读取我的配置文件?
Joa*_*vcm 47
按照上述操作后,我总是得到这个:
total 22
drwxrwxr-x+ 1 jl None 0 Sep 9 18:44 .
drwxrwxr-x+ 1 jl None 0 Sep 9 18:44 ..
-rw-rw---- 1 jl None 129 Jul 1 14:30 config
Run Code Online (Sandbox Code Playgroud)
和错误.ssh/config。所以我chown在.ssh文件夹上运行,chmod再次像这样:
> chown -R [USERNAME]:users .ssh/
Run Code Online (Sandbox Code Playgroud)
进而:
> chmod -R 600 .ssh/
Run Code Online (Sandbox Code Playgroud)
最后我让它工作了:
total 29
drwxrwxr-x+ 1 jl None 0 Sep 9 18:44 .
drwxrwxrwt+ 1 jl None 0 Sep 9 18:44 ..
drw-------+ 1 jl Users 0 Sep 9 18:44 .ssh
Run Code Online (Sandbox Code Playgroud)
编辑(用于 Windows10 上的 bash)
当你得到错误..
无法将主机添加到已知主机列表 (/PATH_TO_HOME/USERNAME/.ssh/known_hosts)。
确保 known_hosts 是可写的
$ chmod 755 known_hosts
注意:我相信你只需要为你的私钥设置 600
然后,尝试 ssh。
当你拿到时..
将“HOST_IP”(RSA)永久添加到已知主机列表中。
您可以更换模式 600
$ chmod 600 known_hosts
PS:我认为这是 Windows 8 上的错误。
gdw*_*dw2 22
这个答案是从https://superuser.com/a/875934/82032逐字复制的。这是最近 cygwin 升级后唯一对我有用的答案。
不要忘记ACL
在我剥离ACL文件并重置权限之前,对我没有任何作用。
#remove ACLs
setfacl -b ~/.ssh/config
#reset permissions
chmod 0600 ~/.ssh/config
Run Code Online (Sandbox Code Playgroud)
您可以使用getfacl来查看文件的当前 ACL。
getfacl ~/.ssh/config
Run Code Online (Sandbox Code Playgroud)
在我删除 ACL(已损坏)之前:
# owner: Administrators
# group: None
user::rw-
group::---
group:Authenticated Users:rwx
group:SYSTEM:rwx
mask:rwx
other:---
Run Code Online (Sandbox Code Playgroud)
之后:(工作)
# file: config
# owner: myusername
# group: None
user::rw-
group::---
other:---
Run Code Online (Sandbox Code Playgroud)
Quite simply:
chown -R $USER:users ~/.ssh/
chmod -R 600 ~/.ssh/
Run Code Online (Sandbox Code Playgroud)
如果文件是 Windows (NTFS) 符号链接,则上述方法不起作用。您需要将其设为常规文件。我不知道为什么。
如果您没有 openssh 或 cygwin,请使用 Chocolatey 轻松安装。
choco install cyg-get
Run Code Online (Sandbox Code Playgroud)
打开安装了 Chocolatey 的Cygwin 终端并运行(注意ssh-keygen创建新密钥):
cyg-get install openssh
ssh-keygen
cd ~/.ssh && explorer.exe .
Run Code Online (Sandbox Code Playgroud)
验证密钥是否存在(或用您想要的密钥替换它们),然后在 Cygwin shell 中:
chown -R $USER:users ~/.ssh/
chmod -R 600 ~/.ssh/
Run Code Online (Sandbox Code Playgroud)
或者对于您正在使用(并从中生成密钥)巧克力的 SSH包的罕见情况:
chown -R $USER:users /cygdrive/c/Users/$USER/.ssh
chmod -R 600 /cygdrive/c/Users/$USER/.ssh
Run Code Online (Sandbox Code Playgroud)
config使用 Cygwin 的ls命令检查文件的权限:
> c:\cygwin\bin\ls.exe -la c:\cygwin\home\[USERNAME]\.ssh
Run Code Online (Sandbox Code Playgroud)
它可能是这样的:
total 5
drwxrwxrwt+ 1 Administrators None 0 Oct 20 17:02 .
drwxr-xr-x+ 1 [USERNAME] None 0 Oct 19 08:15 ..
-rw------- 1 Administrators None 57 Oct 20 16:58 config
Run Code Online (Sandbox Code Playgroud)
配置文件需要属于 [USERNAME]。尝试这个:
> c:\cygwin\bin\chown.exe [USERNAME] c:\cygwin\home\[USERNAME]\.ssh\config
Run Code Online (Sandbox Code Playgroud)
ls -la现在应该显示正确的所有者。如果仍然不起作用,请尝试重置模式(权限):
> c:\cygwin\bin\chmod.exe 700 c:\cygwin\home\[USERNAME]\.ssh\config
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
33393 次 |
| 最近记录: |