我有一个 Github 存储库,我想从两台不同的 Linux 机器访问。
对于第一台机器,我按照Github 的说明生成 SSH 密钥,并将生成的公钥添加到 Github。这个客户端工作正常。
对于第二个客户端,我/home/{user}/.ssh/id_rsa从第一个客户端复制了文件。我认为这可能就是我所要做的,但是当我尝试连接时,我收到“权限被拒绝(公钥)”。
我错过了什么?
我的工作往往涉及使用 SSH 连接到各种机器,然后使用 vim 编辑这些机器上的文件。问题是我必须不断地复制我的 .vimrc 文件。打开vim而且没有任何设置很烦人。是否可以将我的 vim 设置随身携带从一台机器到另一台机器,而无需在任何地方手动复制它?
我有一些具有相同用户/密码组合的任意数量的服务器。我想写一个脚本(我调用一次)以便
ssh-copy-id user@myserver
为每个服务器调用。由于他们都有相同的用户/密码,这应该很容易,但ssh-copy-id希望我每次都分别输入密码,这违背了我的脚本的目的。没有输入密码的选项,即ssh-copy-id -p mypassword user@myserver.
如何编写一个脚本,在ssh-copy-id要求时自动填写密码字段?
我一直在寻找一种方式来设置的OpenSSH的的umask以0027在所有连接类型一致的方式。
通过连接类型,我指的是:
3. 和 4. 之间的区别在于前者启动一个通常读取/etc/profile信息的外壳,而后者不启动。
此外,通过阅读这篇文章,我了解到较新版本的 OpenSSH 中存在 -u 选项。然而这行不通。
我还必须补充一点,/etc/profile现在包括umask 0027.
逐点进行:
-u 0027在这里sshd_config提到的设置,是不够的。如果我不设置这个参数,sftp 默认使用umask 0022. 这意味着如果我有两个文件:
-rwxrwxrwx 1 user user 0 2011-01-29 02:04 execute
-rw-rw-rw- 1 user user 0 2011-01-29 02:04 read-write
Run Code Online (Sandbox Code Playgroud)
当我使用 sftp 将它们放入目标机器时,我实际上得到:
-rwxr-xr-x 1 user user 0 2011-01-29 02:04 execute
-rw-r--r-- 1 user user 0 2011-01-29 …Run Code Online (Sandbox Code Playgroud) 我的情况 :
我(本地主机) -> 服务器 A(ip:100.100.100.100) =>(服务器 B(ip:192.168.25.100),服务器....)
我可以通过 SSH 连接到服务器,因为它有一个真正的 ip,如果我想连接到服务器 b,我会用它的 ip(192.168.25.100) SSH 服务器 b
例子:
从我的电脑:
ssh user@100.100.100.100
Run Code Online (Sandbox Code Playgroud)
然后在 100.100.100.100,
ssh user@192.168.25.100
Run Code Online (Sandbox Code Playgroud)
这将使我使用 ssh 连接到服务器 B
如果我想直接连接到服务器 b 怎么办?我怎样才能做到这一点?
例子:
从我的 oc:
ssh@192.168.25.100
Run Code Online (Sandbox Code Playgroud)
我尝试了以下方法:
ssh -L 22:localhost:22 user@100.100.100.100
Run Code Online (Sandbox Code Playgroud)
没有成功
假设我有一个 Github 的密钥以及其他密钥。我ssh-add -L在我的家用电脑 A 上为我的 ssh 代理添加了很多密钥(返回很多行)。在我的.ssh/config我已经设置了哪个密钥用于哪个主机,例如
ssh -T -vvv git@github.com 2>&1 | grep Offering
Run Code Online (Sandbox Code Playgroud)
给
debug1: Offering RSA public key: /Users/doxna/.ssh/id_rsa.github
Run Code Online (Sandbox Code Playgroud)
正如预期的那样,只提供了一把钥匙。但是然后使用 ssh-ing 连接到某个主机 BForwardAgent yes并重复相同的命令,我得到
debug1: Offering RSA public key: /Users/doxna/.ssh/id_rsa.linode2
debug1: Offering RSA public key: /Users/doxna/.ssh/id_rsa.helium
debug1: Offering RSA public key: /Users/doxna/.ssh/id_rsa.github
Run Code Online (Sandbox Code Playgroud)
这意味着它会尝试我所有的钥匙。这是有问题的,因为在服务器返回之前只能尝试有限数量的密钥Too many authentication failures。所以我尝试.ssh/config在主机 B 上编辑以包括
Host github.com
IdentityFile /Users/doxna/.ssh/id_rsa.github
IdentitiesOnly yes
Run Code Online (Sandbox Code Playgroud)
但后来我没有得到关键的产品,而是
debug2: key: /Users/doxna/.ssh/id_rsa.github ((nil))
Run Code Online (Sandbox Code Playgroud)
我猜这意味着找不到密钥(?)毕竟,密钥位于我的家用计算机 A 上,而不是主机 B,所以问题是如何在主机 B 上引用它?希望我设法解释了这个问题。
我使用 Windows10,我需要使用 jumphost 才能访问我的 Linux 服务器。因此,我已经.ssh\config像这样配置了我的:
Host jumphost
HostName jumphost.server.local
Host server*.server.local
ProxyCommand ssh jumphost netcat -w 120 %h %p
Run Code Online (Sandbox Code Playgroud)
但是当我运行ssh server01.server.local -v(dash-v 表示详细)时,我收到以下错误:
OpenSSH_for_Windows_7.7p1, LibreSSL 2.6.5
debug1: Reading configuration data C:\\Users\\admin/.ssh/config
debug1: C:\\Users\\admin/ssh/config line 70: Applying options for server*.server.local
debug1: Executing proxy command: exec ssh jumphost netcat -w 120 server01.server.local 22
CreateProcessW failed error:2
posix_spawn: No such file or directory
Run Code Online (Sandbox Code Playgroud) 在 ssh 上调试 Nagios 警告,我发现这gssapi-with-mic会导致身份验证长时间滞后。我已经把它关掉了,但我到底错过了什么?我认为GSSAPI是一种身份验证工具,但那-with-mic部分呢?
快速提问 - 我运行两个 linux 机器,一个是我自己的桌面,另一个是我的 VPS。出于 VPS 端的安全原因,我选择了与 MySQL ( /var/run/mysqld/mysql.sock) 的套接字连接。我知道我可以像这样ssh -L 3307:127.0.0.1:3306 user@site.com建立隧道:如果我设置远程 sql server 来监听某个端口,但我想知道的是我可以做这样的事情:ssh -L /path/to/myremotesqlserver.sock:/var/run/mysqld/mysql.sock从而隧道两个套接字,而不是两个端口?
一个完全可以接受的解决方案也是将本地端口转发到远程套接字文件,但在可能的情况下,我试图不在远程机器上运行 tcp 服务器。
(是的,我知道 tcp 会更容易)。