想象一个场景,我从我的本地机器登录到一个服务器(我们称之为“Wallace”),然后我从那里ssh进入另一个服务器(我们称之为“Gromit”):
laptop ---ssh---> Wallace ---ssh---> Gromit
Run Code Online (Sandbox Code Playgroud)
然后从 Wallace 到 Gromit 的 ssh 会话挂了,我想杀死它。如果我输入~.杀死 ssh,它会终止从我的笔记本电脑到 Wallace 的 ssh 会话,因为~ssh 会话被该 ssh 会话拦截,并且.被视为终止会话的命令。如何向 Wallace 和 Gromit 之间的 ssh 会话发送命令?我如何杀死我的“内部”ssh?
有人可以告诉我在哪里可以找到 RedHat 和 SELinux 上的 SSHD 日志....我想查看日志以查看谁正在登录我的帐户..
我通过 Google Compute Engine 中的 Bitnami 创建了一个 VM。以前,我可以通过 Bitnami Web 界面进行 ssh。我试图通过 Mac 上的终端 ssh,但一直收到Permission denied (publickey)错误消息。然后我删除了服务器和我的 Mac 上的所有密钥,并从 bitnami 下载了 pem 文件并使用-i了连接选项,但问题仍然存在。
ssh -i bitnami-gce.pem xxx@1xx.1xx.5x.1xx -v
Run Code Online (Sandbox Code Playgroud)
完整的调试信息:
OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011
debug1: Reading configuration data /etc/ssh_config
debug1: /etc/ssh_config line 20: Applying options for *
debug1: Connecting to 1xx.1xx.5x.1xx [1xx.1xx.5x.1xx] port 22.
debug1: Connection established.
debug1: identity file bitnami-gce.pem type -1
debug1: identity file bitnami-gce.pem-cert type -1
debug1: Enabling compatibility mode for protocol …Run Code Online (Sandbox Code Playgroud) debian ssh ssh-keys google-compute-engine google-cloud-platform
我曾在组织中工作过,在这些组织中,系统管理员不是为每个想要登录机器的人创建一个新的 Ubuntu 用户,而是简单地将每个用户的 ssh 密钥添加到.ssh/authorized_keys,并且每个人都ssh以(例如)ubuntu@host或ec2-user@host. (顺便说一句,我也在实验室环境中的共享 Mac mini 上看到了这种做法。)这是公认的做法,还是一种反模式?
有问题的主机主要用于测试,但也有一些操作通常需要按用户配置并被跟踪为由特定用户完成,例如创建和推送 git 提交,目前使用通用 git 完成用户。
我用expect试过这个,但没有用:它最后关闭了连接。
我们可以通过 ssh 运行一个脚本来登录远程机器,运行命令,而不是断开连接吗?
所以在一台机器上ssh,cd到某某目录,然后运行一条命令,保持登录状态。
-乔纳森
(希望我用过)
#!/usr/bin/expect -f
set password [lrange $argv 0 0]
spawn ssh root@marlboro "cd /tmp; ls -altr | tail"
expect "?assword:*"
send -- "$password\r"
send -- "\r"
interact
Run Code Online (Sandbox Code Playgroud) 我有一个加密的 FAT 卷(为了兼容性),其中包含一个私钥文件和其他敏感数据。
我想使用我的私钥通过 SSH 连接到我的服务器,但是当然,由于 FAT 不支持文件权限,它忽略了我的密钥,说它的权限太开放了。
所以目前我正在使用 0600 权限将它复制到我硬盘驱动器上的其他地方,使用它然后安全地擦除它,但这很痛苦。
有没有办法绕过这个非常 ssh/scp 命令行的权限检查?
编辑:精度:它是 OS X 上的 TrueCrypt 卷。
关于解决方案:下面接受的答案解决了我的问题(使用位于 Mac OS X 的 TrueCrypt 卷上的 SSH 密钥文件),但这是一种解决方法。看起来没有办法“绕过密钥文件权限检查”。
读到这个问题让我感到疑惑。假设screen没有被使用。如果 Linux 目标上的 SSH 会话因任何原因被删除,并且您在服务器因超时而终止会话之前重新连接,是否有可能重新获得对正在运行的命令的控制,使其不会因会话中断而被中止?
我不知道这是如何发生的。发行版是 Scientific Linux 6.1,一切都设置为通过公钥执行身份验证。然而,当 sshd 作为守护进程运行时(service sshd start),它不接受公钥。(为了获取这段日志,我已经更改了 sshd 脚本以添加 -ddd 选项)
debug1: trying public key file /root/.ssh/authorized_keys
debug1: restore_uid: 0/0
debug1: temporarily_use_uid: 0/0 (e=0/0)
debug1: trying public key file /root/.ssh/authorized_keys2
debug1: restore_uid: 0/0
Failed publickey for root from xxx.xxx.xxx.xxx port xxxxx ssh2
debug3: mm_answer_keyallowed: key 0x7f266e1a8840 is not allowed
debug3: mm_request_send entering: type 22
debug3: mm_request_receive entering
debug2: userauth_pubkey: authenticated 0 pkalg ssh-rsa
debug3: Wrote 64 bytes for a total of 1853
debug1: userauth-request for user root service ssh-connection …Run Code Online (Sandbox Code Playgroud) 尝试创建一个socks (-D) ssh 隧道 - Linux 盒到 Linux 盒(都是 centos):
sshd 在远程端运行正常。
从本地机器我们做/看到这个:
ssh -D 1080 user@8.8.8.8.
user@8.8.8.8's password:
bind: Cannot assign requested address
Run Code Online (Sandbox Code Playgroud)
(其中 8.8.8.8 实际上是我服务器的 IP,'user' 是我的真实用户名)
我在这个终端窗口中登录到远程端。我可以验证本地端口在此命令之前未被使用,然后在命令之后被 ssh 进程使用,通过:
netstat -lnp | grep 1080
Run Code Online (Sandbox Code Playgroud)
因此,与大多数带有此错误的 googled 响应不同,问题似乎不是环回接口分配。如果我尝试将此隧道与邮件客户端一起使用,本地端会允许尝试(没有“代理失败”错误),但不会返回任何数据/回复。
在远程端,我的 sshd_config 中确实有“PermitTunnel yes”(尽管“yes”应该是默认值,无论如何)。
想法或线索?
这是相关的调试输出
OpenSSH_5.3p1, OpenSSL 1.0.0-fips 29 Mar 2010
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for *
....
debug1: Authentication succeeded (password).
debug1: Local connections to LOCALHOST:1080 forwarded to remote address socks:0
debug1: Local forwarding …Run Code Online (Sandbox Code Playgroud) 我正在尝试通过设置所有者和组rsync,但它似乎不起作用。
这是命令:
sudo rsync -rlptDvz --owner=cmsseren --group=cmsseren /home/serena/public_html/ -e ssh root@ip:/home/cmsseren/public_html2/
Run Code Online (Sandbox Code Playgroud)
文件同步正确,但似乎没有更改所有者和组。
ssh ×10
linux ×6
automation ×1
daemon ×1
debian ×1
keys ×1
permissions ×1
private-key ×1
redhat ×1
rsync ×1
selinux ×1
ssh-keys ×1
tunnel ×1