标签: ssh

是否可以以普通用户身份运行 sshd?

我的目标是sshd使用我自己的配置文件在非特权端口(例如 2222)上启动第二个实例。

显然,该sshd进程不能setuid以运行sshd守护程序的用户以外的用户身份登录,这显然是不可能的。

但是,是否有可能有一个工作sshd守护程序适用于当前正在运行的用户?对于我的用例,这很好。

我尝试sshd使用我自己的配置文件和主机密钥启动一个实例,然后sshd进程启动(没有关于不是 root 的抱怨,就像某些命令一样),但是当我尝试连接到该端口时,sshd进程终止了。

$ /usr/sbin/sshd -dD -h .ssh/id_rsa -p 2222 
debug1: sshd version OpenSSH_5.6p1
debug1: read PEM private key done: type RSA
debug1: private host key: #0 type 1 RSA
debug1: setgroups() failed: Operation not permitted
debug1: rexec_argv[0]='/usr/sbin/sshd'
debug1: rexec_argv[1]='-dD'
debug1: rexec_argv[2]='-h'
debug1: rexec_argv[3]='.ssh/id_rsa'
debug1: rexec_argv[4]='-p'
debug1: rexec_argv[5]='2222'
debug1: Bind to port 2222 on 0.0.0.0.
Server listening on 0.0.0.0 port …
Run Code Online (Sandbox Code Playgroud)

ssh

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

SSH 日志中的“正常关机,感谢您玩 [preauth]”是什么意思?

最近,我在 Logwatch 中的 Ubuntu 12.04 服务器的 SSH 日志摘要开始显示“11:正常关机,感谢您玩 [preauth]”以及“11:再见 [preauth]”和“11:断开连接”的条目用户”他们之前显示的消息。

在过去几周之前,我没有在日志中看到这条消息,也没有在我的旧服务器上看到它,这些服务器卡在 Ubuntu 10.04 上。我在谷歌上搜索了这条消息,也找不到任何明确的解释。

尝试登录和接收此消息的 IP 是随机的 hack 尝试,从 preauth 来看,我假设(希望)它们没有成功,但我想确切地知道此消息的含义以及它与其他消息的不同之处。

编辑附加信息:我的服务器已禁用密码身份验证和根身份验证

ssh logwatch

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

阻止 ssh 客户端提供它可以找到的所有公钥?

像大多数系统管理员一样,我一直使用 openssh。我有大约一打 ssh 密钥,我喜欢为每个主机使用不同的 ssh 密钥。但是,当我第一次连接到主机时,这会导致问题,而我只有密码。我只想使用密码连接到主机,在这种情况下没有 ssh 密钥。但是 ssh 客户端将提供我的所有公钥~/.ssh/(我通过查看 的输出知道这一点ssh -v)。由于我有这么多,我会因为太多的身份验证失败而断开连接。

有没有办法告诉我的 ssh 客户端不要提供所有的 ssh 密钥?

ssh private-key public-key

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

将名称与 ssh 的 ip 相关联?

假设我只有一个服务器的 ip 地址,而我没有域(它只是一个数据库服务器,所以它不需要域)。我不想每次都记住 ip 地址,所以有没有办法我仍然可以使用类似的语法ssh username@database

ubuntu ssh ip host ip-address

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

如何将 openssh sftp 命令与从命令行指定的 RSA/DSA 密钥一起使用

Openssh ssh 和 scp 命令提供了一个-i命令行选项来指定用于身份验证的 RSA/DSA 密钥的路径。

查看 sftp 手册页,我找不到指定 RSA/DSA 密钥的方法。

我正在寻找一种方法来启动一个 sftp 会话,该会话将使用指定的 RSA/DSA 密钥,而不是 ~/.ssh/id_{dsa,rsa} 密钥。

我在 Linux 上尝试了 OpenSSH sftp 客户端……但它在其他平台上应该有相同的选项。

ssh sftp rsa dsa

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

如何获取 .ssh/authorized_keys(2) 文件的所有指纹

有没有一种简单的方法来获取 .ssh/authorized_keys 中输入的所有指纹的列表?.ssh/authorized_keys2 文件?

ssh-keygen -l -f .ssh/authorized_keys 
Run Code Online (Sandbox Code Playgroud)

只会返回第一行/条目/公钥的指纹

用 awk 破解:

awk 'BEGIN { 
    while (getline < ".ssh/authorized_keys") {
        if ($1!~"ssh-(r|d)sa") {continue}
        print "Fingerprint for "$3
        system("echo " "\""$0"\"> /tmp/authorizedPublicKey.scan; \
            ssh-keygen -l -f /tmp/authorizedPublicKey.scan; \
            rm /tmp/authorizedPublicKey.scan"
        )
    }
}'
Run Code Online (Sandbox Code Playgroud)

但是有没有更简单的方法或我没有找到的 ssh 命令?

ssh bash awk ssh-keygen ssh-keys

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

在团队中管理 SSH 密钥的最佳实践是什么?

我与具有以下特征的开发人员和管理员的小团队(<10)一起工作:

  • 团队大部分成员拥有>1台个人电脑,其中大部分是便携式的
  • 团队成员可以访问 10-50 个服务器,通常使用 sudo

我认为这对于大多数初创公司和中小型企业 IT 团队来说是非常典型的。

在这样的团队中管理 SSH 密钥的最佳实践是什么?

您应该为整个团队共享一个密钥吗?

每个人是否应该在共享帐户(每台服务器上的“ubuntu”)上拥有自己的密钥?

分开账户?

每个团队成员是否应该为他们的每台笔记本电脑或台式电脑保留一个单独的密钥?

security ssh keys

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

如何找到当前连接的当前 SSH 协议版本?

我使用PuTTY连接到 Linux 机器(CentOS 6.4)。除了我可以将 PuTTY 设置为仅使用一种类型的协议之外,我如何才能找到当前的 SSH 连接版本(SSH1 或 SSH2)?

linux ssh centos6

46
推荐指数
4
解决办法
21万
查看次数

无法使 SSH 公钥身份验证正常工作

我的服务器运行 CentOS 5.3。我在运行 Leopard 的 Mac 上。我不知道谁对此负责:

我可以通过密码验证登录到我的服务器。我已经完成了设置 PKA 的所有步骤(如http://www.centos.org/docs/5/html/Deployment_Guide-en-US/s1-ssh-beyondshell.html 所述),但是当我使用 SSH,它甚至拒绝尝试公钥验证。使用命令

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

(其中 -vvv 将详细程度提高到最大级别)我得到以下相关输出:

debug2: key: /Users/me/.ssh/id_dsa (0x123456)
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list publickey,gssapi-with-mic,password
debug3: preferred keyboard-interactive,password
debug3: authmethod_lookup password
debug3: remaining preferred: ,password
debug3: authmethod_is_enabled password
debug1: Next authentication method: password
Run Code Online (Sandbox Code Playgroud)

然后提示我输入密码。如果我试图用

ssh -vvv -o PreferredAuthentications=publickey user@host
Run Code Online (Sandbox Code Playgroud)

我得到

debug2: key: /Users/me/.ssh/id_dsa (0x123456)
debug1: Authentications that can continue: publickey,gssapi-with-mic,password
debug3: start over, passed a different list …
Run Code Online (Sandbox Code Playgroud)

ssh

45
推荐指数
5
解决办法
15万
查看次数

安全地将主机(例如 GitHub)添加到 SSH known_hosts 文件

如何known_hosts安全地将主机密钥添加到 SSH文件?

我正在设置一台开发机器,我想(例如)防止git在我github.com使用 SSH克隆存储库时进行提示。

我知道我可以使用StrictHostKeyChecking=no(例如这个答案),但这并不安全。

到目前为止,我发现...

  1. GitHub 在https://help.github.com/articles/github-s-ssh-key-fingerprints/上发布了他们的 SSH 密钥指纹

  2. 我可以ssh-keyscan用来获取github.com.

我如何结合这些事实?给定一个预先填充的指纹列表,我如何验证可以将 的输出ssh-keyscan添加到known_hosts文件中?


我想我在问以下问题:

如何获取由 返回的密钥的指纹ssh-keyscan

假设我已经通过了 SSH 的MITM认证,但是我可以信任 GitHub HTTPS 页面(因为它有一个有效的证书链)。

这意味着我有一些(可疑的)SSH 主机密钥(来自ssh-keyscan)和一些(受信任的)密钥指纹。我如何验证一个与另一个?


相关:如何散列输出的主机部分ssh-keyscan?或者我可以混合散列/未散列的主机known_hosts吗?

ssh

45
推荐指数
5
解决办法
6万
查看次数

标签 统计

ssh ×10

awk ×1

bash ×1

centos6 ×1

dsa ×1

host ×1

ip ×1

ip-address ×1

keys ×1

linux ×1

logwatch ×1

private-key ×1

public-key ×1

rsa ×1

security ×1

sftp ×1

ssh-keygen ×1

ssh-keys ×1

ubuntu ×1