有没有办法暂时忽略我的~/.ssh/known_hosts文件?
mbp:~ alexus$ ssh 10.52.11.171
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@ WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that a host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx.
Please contact your system administrator.
Add correct host key in /Users/alexus/.ssh/known_hosts to get rid of this message.
Offending RSA …Run Code Online (Sandbox Code Playgroud) 我正在使用SSHFS挂载从我的笔记本电脑到中央服务器。
显然,SSHFS 挂载在较长时间断开连接后(例如在挂起期间)被破坏,导致底层 SSH 连接超时。
有没有办法让 SSHFS 挂载在长期断开连接(> 5 分钟)甚至使用不同 IP 重新拨号的情况下幸存下来?
按照此处给出的说明进行 rsync 备份时:http : //troy.jdmz.net/rsync/index.html
我收到错误消息“协议版本不匹配——你的外壳干净吗?”
我在某处读到我需要使提示 (PS1="") 和 motd (.hushlogin) 显示静音才能解决这个问题。我这样做了,提示和登录横幅(MOTD)不再出现,但运行时仍然出现错误:
rsync -avvvz -e "ssh -i /home/thisuser/cron/thishost-rsync-key" remoteuser@remotehost:/remote/dir /this/dir/
Run Code Online (Sandbox Code Playgroud)
ssh 客户端和 sshd 服务器都使用协议的第 2 版。
可能是什么问题呢?
[编辑] 我发现http://www.eng.cam.ac.uk/help/jpmg/ssh/authorized_keys_howto.html 指示有时需要“通过使用 -2 标志强制 v2 到 ssh 或 slogin
ssh -2 -i ~/.ssh/my_private_key remotemachine"
Run Code Online (Sandbox Code Playgroud)
目前尚不清楚这是否解决了问题,因为我认为我在错误更改后进行了此更改,但事实是错误已演变为其他内容。当我了解更多信息时,我会更新这个。我当然会尝试在 emacs shell 中运行它的建议 -
我是一名程序员,我为一些客户工作过,他们的网络阻止了端口 22 上的传出连接。考虑到程序员经常需要使用端口 22 进行 ssh,这似乎是一个适得其反的过程。充其量,它迫使程序员向公司收取 3G 互联网费用。在最坏的情况下,这意味着他们无法有效地完成工作。
鉴于这造成的困难,有经验的系统管理员能否解释一下看似双输的行动的预期好处?
所以不久前我在 AWS 上设置了一个服务器,并使用他们生成的 SSH 密钥。我将密钥保存到 Lastpass,并且之前已经成功地从那里检索到它,并使其正常工作。但是,今天再次尝试后,我无法让它工作。
-rw------- 1 itsgreg users 1674 Jun 6 12:51 key_name
我试过ssh -i key_name, ssh-keygen -f key_name,但没有任何效果,我总是收到此错误消息:
Load key "key_name": invalid format
有没有什么办法解决这一问题?
使用 ssh 连接到我的一台服务器需要 20 多秒才能启动。
这与 LAN 或 WAN 条件无关,因为与自身的连接采用相同的 (ssh localhost)。最终建立连接后,与服务器交互速度超快。
使用 -vvv 显示说“承诺:网络”后连接卡住了。此时,身份验证(此处使用密钥)已经完成,如下所示:
...
debug1: Authentication succeeded (publickey).
Authenticated to myserver.mydomain.com ([xx.xx.xx.xx]:22).
debug1: channel 0: new [client-session]
debug2: channel 0: send open
debug1: Requesting no-more-sessions@openssh.com
debug1: Entering interactive session.
debug1: pledge: network
Run Code Online (Sandbox Code Playgroud)
(...卡在这里 15 到 25 秒...)
debug1: client_input_global_request: rtype hostkeys-00@openssh.com want_reply 0
debug2: callback start
debug2: fd 3 setting TCP_NODELAY
debug2: client_session2_setup: id 0
...
Run Code Online (Sandbox Code Playgroud)
服务器是 Ubuntu 16.04。过去我在另一台服务器(是 Ubuntu 12.04)上已经发生过这种情况,神经找到了解决方案,一段时间后问题消失了......
sshd_config 是 Ubuntu 提供的默认配置。
到目前为止,我已经尝试过:
在我自己的计算机上,运行 MacOSX,我在 ~/.ssh/config 中有这个
Host *
ForwardAgent yes
Host b1
ForwardAgent yes
Run Code Online (Sandbox Code Playgroud)
b1 是运行 Ubuntu 12.04 的虚拟机。我像这样 ssh 到它:
ssh pupeno@b1
Run Code Online (Sandbox Code Playgroud)
我在没有被要求输入密码的情况下登录,因为我已经复制了我的公钥。由于转发,我应该能够从 b1 ssh 到 pupeno@b1 并且它应该可以工作,而不需要我输入密码,但它没有。它要求我输入密码。
我错过了什么?
这是第二个 ssh 的详细输出:
pupeno@b1:~$ ssh -v pupeno@b1
OpenSSH_5.9p1 Debian-5ubuntu1, OpenSSL 1.0.1 14 Mar 2012
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: /etc/ssh/ssh_config line 19: Applying options for *
debug1: Connecting to b1 [127.0.1.1] port 22.
debug1: Connection established.
debug1: identity file /home/pupeno/.ssh/id_rsa type -1
debug1: identity file /home/pupeno/.ssh/id_rsa-cert type -1
debug1: identity file …Run Code Online (Sandbox Code Playgroud) 我创建了用户 MY_USER。将他的家目录设置为/var/www/RESTRICTED_DIR,这是他应该被限制的路径。然后我编辑了 sshd_config 并设置:
Match user MY_USER
ChrootDirectory /var/www/RESTRICTED_DIR
Run Code Online (Sandbox Code Playgroud)
然后我重新启动了 ssh。将 MY_USER 所有者(和组所有者)设为 RESTRICTED_DIR,并将其修改为 755。我明白了
Accepted password for MY_USER
session opened for user MY_USER by (uid=0)
fatal: bad ownership or modes for chroot directory component "/var/www/RESTRICTED_DIR"
pam_unix(sshd:session): session closed for user MY_USER
Run Code Online (Sandbox Code Playgroud)
如果我从 sshd_config 中删除了 2 行,则用户可以成功登录。当然,它可以访问所有服务器。有什么问题?我什至试图将 RESTRICTED_DIR chown 到 root (因为我在某处读到有人解决了同样的问题)。没运气..
我的 ansible 盒子(流浪者)有一些奇怪的问题。
昨天一切正常,我的剧本运行良好。
今天,ansible 靠的是“收集事实”?
这是详细的输出:
<5.xxx.xxx.xxx> ESTABLISH CONNECTION FOR USER: deploy
<5.xxx.xxx.xxx> REMOTE_MODULE setup
<5.xxx.xxx.xxx> EXEC ['ssh', '-C', '-tt', '-vvv', '-o', 'ControlMaster=auto', '-
o', 'ControlPersist=60s', '-o', 'ControlPath=/home/vagrant/.ansible/cp/ansible-s
sh-%h-%p-%r', '-o', 'Port=2221', '-o', 'KbdInteractiveAuthentication=no', '-o',
'PreferredAuthentications=gssapi-with-mic,gssapi-keyex,hostbased,publickey', '-o
', 'PasswordAuthentication=no', '-o', 'User=deploy', '-o', 'ConnectTimeout=10',
'5.xxx.xxx.xxx', "/bin/sh -c 'mkdir -p $HOME/.ansible/tmp/ansible-tmp-1411372677
.18-251130781588968 && chmod a+rx $HOME/.ansible/tmp/ansible-tmp-1411372677.18-2
51130781588968 && echo $HOME/.ansible/tmp/ansible-tmp-1411372677.18-251130781588
968'"]
Run Code Online (Sandbox Code Playgroud) Rsync over ssh,每次都很好用。
但是,尝试 rsync 到仅允许 sftp 登录但不允许 ssh 登录的主机时,会出现以下错误:
rsync -av /source ssh user@remotehost:/target/
协议版本不匹配——你的外壳干净吗?(有关解释,请参阅 rsync 手册页)rsync 错误:compat.c(171) [sender=3.0.6] 处的协议不兼容(代码 2)
这是 rsync 手册页中的相关部分:
此消息通常是由您的启动脚本或远程 shell 工具在 rsync 用于其传输的流上产生不需要的垃圾引起的。诊断此问题的方法是像这样运行远程 shell:
Run Code Online (Sandbox Code Playgroud)ssh remotehost /bin/true > out.dat然后看看out.dat。如果一切正常,那么 out.dat 应该是一个零长度文件。如果您从 rsync 收到上述错误,那么您可能会发现 out.dat 包含一些文本或数据。查看内容并尝试找出产生它的原因。最com?原因是错误配置的 shell 启动脚本(例如 .cshrc 或 .profile)包含非交互式登录的输出语句。
在我的系统上尝试这个在 out.dat 中产生了以下内容:
ssh-dummy-shell:不允许的命令。
正如我所想,主机不允许 ssh 登录。
以下链接显示可以使用带有 sshfs 的保险丝来完成此任务 - 但是它非常慢,并且不适合生产使用。
有没有机会让 rsync sftp 工作?