标签: ssh

根据登录凭据更改 bash 提示符中显示的主机名

我在一台服务器上托管多个域。

我希望能够更改 bash 提示符中显示的主机名,以指示我在 ssh 进入服务器时选择的主机名。

我的提示如下:

\u@\h
Run Code Online (Sandbox Code Playgroud)

这显示为:

user@hostname
Run Code Online (Sandbox Code Playgroud)

我如何更改\h以显示我登录的域(blah.net、hmm.com 等)?

ssh bash hostname

3
推荐指数
1
解决办法
1万
查看次数

使用公钥/私钥通过 ssh 使用 rsync 不起作用

我有一个位于 backup.sh 文件(chmod 775)中的脚本:

rsync -e 'ssh -p 31234' -avlz --delete --stats --progress --copy-links admin@foo.xen.prgmr.com:/home/admin/rsync /home/myname/rsync/foo/
Run Code Online (Sandbox Code Playgroud)

当我手动调用它时,一切正常(并且我不必输入密码)。但是当我从 cron 调用它时,它就不起作用了。

我在同事的计算机上使用了相同的设置(与我具有相同的访问权限),并且效果很好。

怎么了?

ssh rsync

3
推荐指数
1
解决办法
7234
查看次数

如何使用 gssapi-with-mic 调试 ssh 身份验证失败

当我 ssh 到 DOMAIN\user@localhosts-name 时,身份验证通过 gssapi-with-mic 工作正常:

debug3: remaining preferred: gssapi,publickey,keyboard-interactive,password
debug3: authmethod_is_enabled gssapi-with-mic
debug1: Next authentication method: gssapi-with-mic
debug2: we sent a gssapi-with-mic packet, wait for reply
debug3: Wrote 112 bytes for a total of 1255
debug1: Delegating credentials
debug3: Wrote 2816 bytes for a total of 4071
debug1: Delegating credentials
debug3: Wrote 80 bytes for a total of 4151
debug1: Authentication succeeded (gssapi-with-mic).
Run Code Online (Sandbox Code Playgroud)

当我连接到另一台机器时,它似乎在 gssapi-with-mic 身份验证中途停止:

debug1: Next authentication method: gssapi-with-mic
debug2: we sent a gssapi-with-mic packet, wait …
Run Code Online (Sandbox Code Playgroud)

ssh kerberos

3
推荐指数
1
解决办法
6500
查看次数

通过 ssh -X :未设置显示

我尝试通过 ssh 连接

 ssh -X user@host
Run Code Online (Sandbox Code Playgroud)

但我得到

$ xterm
xterm Xt error: Can't open display: xterm:  DISPLAY is not set

$ echo $DISPLAY
# ... nothing
Run Code Online (Sandbox Code Playgroud)

在我的 sshd_config 中我有

X11Forwarding yes
X11DisplayOffset 10
Run Code Online (Sandbox Code Playgroud)

编辑

在/var/log/auth.log我得到

 sshd[7396]: error: Failed to allocate internet-domain X11 display socket.
Run Code Online (Sandbox Code Playgroud)

debian ssh debian-squeeze

3
推荐指数
1
解决办法
1万
查看次数

ssh 和 /root/.ssh/known_hosts 中 IP 的违规密钥

为什么或为什么我在服务器 A 尝试连接到服务器 B 时收到此错误???

ssh root@zk.111.sf.development.cloudera.fu.com
Warning: the ECDSA host key for 'zk.111.sf.development.cloudera.fu.com' differs from the key for the IP address '107.170.xxx.xxx'
Offending key for IP in /root/.ssh/known_hosts:4
Matching host key in /root/.ssh/known_hosts:5
Are you sure you want to continue connecting (yes/no)? no
Host key verification failed.
enter code here
Run Code Online (Sandbox Code Playgroud)

在服务器 AI 上执行此操作

eval `ssh-agent -s`
ssh-keyscan 107.170.xxx.xxx | tee -a /root/.ssh/known_hosts
Run Code Online (Sandbox Code Playgroud)

然后我尝试 ssh。哇..两个服务器事件都有相同的 pub 和 private 密钥。我正在尝试在服务器之间设置无密码身份验证。

ssh

3
推荐指数
2
解决办法
3万
查看次数

如何使用本地计算机上的密钥在远程实例上设置 Git?

我有一个设置,可以从我的本地计算机 ssh 到我的远程服务器(即 Google 计算实例)。我曾经能够从远程实例上的存储库进行克隆、推送和拉取,而无需向远程实例添加任何密钥,也无需向在线存储库添加任何新密钥(只需本地计算机中的公钥)。我相信远程实例正在使用本地的密钥来验证我的 Git 推送和拉取操作。

然而,当我在本地计算机上重新安装操作系统时,系统崩溃了。现在,当我尝试从远程实例连接 Github 服务器时,我得到以下信息:

无法克隆:

[lucas@ecoinstance]~/node$ git clone git@github.com:lucasExample/test.git test
Cloning into 'test'...
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

无法推送:

[lucas@ecoinstance]~/node/nodetest1$ git status
# On branch master
# Your branch is ahead of 'origin/master' by 1 commit.
#
nothing to commit (working directory clean)
[lucas@ecoinstance]~/node/nodetest1$ git push
Permission denied (publickey).
fatal: The remote end hung up unexpectedly
Run Code Online (Sandbox Code Playgroud)

附加信息:

[lucas@ecoinstance]~/node/nodetest1$ ssh-add -l
Could …
Run Code Online (Sandbox Code Playgroud)

ssh git public-key ssh-keys

3
推荐指数
1
解决办法
2292
查看次数

SSH 区域设置错误

我有一个 debian 服务器,区域设置设置为 hu_HU.UTF-8,如果我通过控制台登录,它可以在匈牙利语中完美运行。它也适用于 ssh 登录,直到我在 sshd 配置中禁用 PAM。从那时起,当我通过 ssh 登录时,区域设置被设置为 POSIX。

我尝试注释AcceptEnv LANG LC_*sshd_config 中的行,但问题仍然存在。我正在使用 UTF-8 字符集与 Putty 连接。

那么我该如何解决这个问题呢?

localization ssh putty pam

3
推荐指数
1
解决办法
1555
查看次数

我可以安全地禁用服务器上的 SSH-1 访问吗?

SSH-2 已经问世近十年了。我至少知道当前连接到我的服务器的所有计算机都使用更新的版本 2 协议。考虑到这一点,禁用或阻止 SSH-1 有任何好处(安全性或其他方面)吗?

我是否可以安全地禁用服务器通过 SSH 协议版本 1 进行的任何访问,同时仍然允许使用版本 2 的 SSH 客户端访问服务器,而不破坏任何内容?

(还有一个额外的问题,如果有人知道在哪里可以找到使用统计信息)即使该服务器后来被更多人使用,但实际上有人仍在使用 SSH-1 协议的可能性有多大?

ssh legacy

3
推荐指数
1
解决办法
2997
查看次数

3台机器之间的端口转发

我有 3 台机器,它们连接成一条链,A、B、C。

 A-->B-->C
Run Code Online (Sandbox Code Playgroud)

A 是我的机器,B 是服务器,C 是其他机器,上面有一些服务和 Web 服务器。由于一些问题,我需要从A访问C上的Web服务器(端口80),我可以使用ssh从A登录到B,然后从B登录到C,但此时控制台太少了。我需要网络浏览器,并且使用带选项的 ssh-X不起作用(Firefox 启动时 dbus 出现一些问题)。

我使用经典命令在 B 上进行端口转发,为 ssh 转发 22 端口:

ssh -L 2222:localhostB:22 user@ipC
Run Code Online (Sandbox Code Playgroud)

但使用相同的方法转发端口 80 不起作用:

ssh -L 8888:localhostB:80 user@ipC
Run Code Online (Sandbox Code Playgroud)

我知道还有其他一些转发可以使其工作,但我不明白如何以及什么。

我需要这样的东西:

A --> B (frd from B:8888 to C:80) --> C (port 80 web server)
Run Code Online (Sandbox Code Playgroud)

因此,当我输入 ipB:8888 时,我将被转发到 C:80。

任何解释必须做什么的帮助或带有命令的脚本将不胜感激。我从一篇博客中注意到必须完成两次ssh -L转发,但我不明白为什么。

ssh port-forwarding ssh-tunnel

3
推荐指数
1
解决办法
3205
查看次数

不必要时使用 ProxyJump 的缺点

ProxyJump在不需要时使用有什么缺点吗?

我们在许多机器之间使用共享的 .ssh/config 文件,其中一些在 jumpbox 后面,而另一些则没有。对于位于特定跳箱后面的两台机器,仍然使用该ProxyJump选项是否有不利之处?(我猜会有难以察觉的额外延迟,但就是这样)。

现在我们的共享配置使用此设置仅ProxyJump在需要时使用:

Match Host example Exec "! nslookup $(nslookup internal.site.com | head -1 | grep -o '[0-9]\+\([.][0-9]\+\)\{3\}') | grep -o 'name = .\+site.com\.$'"
    ProxyJump jumpbox
Host example
    HostName example.internal.site.com
Run Code Online (Sandbox Code Playgroud)

但是,Match Exec检查有点脆弱,不一定在所有系统上都能正常工作。

ssh proxy

3
推荐指数
1
解决办法
233
查看次数