标签: ssh

Fedora 30 上使用 OpenSSH 8.0 的 SSH 连接问题(使用 ssh-dss),仍然要求输入公钥设置的密码

我已经在网上做了一些研究,最好的解决方案似乎是使用更好的算法来生成新的密钥对。但现在我仍然需要使用 ssh-dss 密钥对进行内部自动化。

(我知道从openssh 7.0开始,ssh-dss默认是禁用的,我们需要显式添加PubkeyAcceptedKeyTypes +ssh-dss到ssh配置中才能重新启用它。)

环境:

OpenSSH_8.0p1, OpenSSL 1.1.1c FIPS  28 May 2019

Linux hostname 5.1.19-300.fc30.x86_64 #1 SMP Mon Jul 22 16:32:45 UTC 2019 x86_64 x86_64 x86_64 GNU/Linux
Run Code Online (Sandbox Code Playgroud)

这是我到目前为止所做的事情的清单:

  • 创建一个有密码的用户(有些帖子说可能需要密码)
  • 创建.ssh文件夹,在 中设置公钥.ssh/authorized_keys,确保它们具有 700、600 权限和正确的所有者而不是 root。
  • 检查/etc/ssh/sshd_config,确保我们有PubkeyAuthentication yes(通常是默认值)
  • 显式启用ssh-dss
    • 在服务器PubkeyAcceptedKeyTypes +ssh-dss上添加/etc/ssh/sshd_config
    • PubkeyAcceptedKeyTypes +ssh-dss在服务器端~/.ssh/config和客户端都添加
  • 重新启动 sshd 服务以选择新的更改

但是,我仍然被要求输入密码。

  • 检查一下/var/log/secure,我看到:

userauth_pubkey: key type ssh-dss not in PubkeyAcceptedKeyTypes

  • 查看ssh -Q key
ssh-ed25519 …
Run Code Online (Sandbox Code Playgroud)

linux security fedora ssh openssh

2
推荐指数
1
解决办法
6363
查看次数

尝试生成 SSH 密钥时出现 GIT Bash 错误

我正在使用以下链接:

https://help.github.com/en/articles/generate-a-new-ssh-key-and-adding-it-to-the-ssh-agent

当我复制并粘贴:$ ssh-keygen -t rsa -b 4096 -C "your_email@example.com",在引用中替换我自己的 github 电子邮件时,我收到错误。

这是我粘贴的内容和收到的错误:

$ $ ssh-keygen -t rsa -b 4096 -C "your_email@example.com"
bash: $: command not found 
Run Code Online (Sandbox Code Playgroud)

谁能帮我吗?

ssh bash git

2
推荐指数
1
解决办法
2175
查看次数

当我们使用Windows 10 OpenSSH服务器和WSL2时,我们应该在哪里找到authorized_keys?

我设置了 Windows 10 的 OpenSSH 服务器,通过本文中描述的方法建立到 WSL2 bash 的 ssh 连接:“THE EASY WAY how to SSH into Bash and WSL2 on Windows 10 from an external machine”,以及本文档:“OpenSSH key管理”

总之,我以管理员身份在 PowerShell 上运行以下命令:

Add-WindowsCapability -Online -Name OpenSSH.Server~~~~0.0.1.0
Start-Service sshd
New-ItemProperty -Path "HKLM:\SOFTWARE\OpenSSH" -Name DefaultShell -Value "C:\WINDOWS\System32\bash.exe" -PropertyType String -Force
Run Code Online (Sandbox Code Playgroud)

之后,我可以ssh <my Windows username>@localhost使用 Windows 密码通过 ssh 从 PowerShell 连接到本地主机上的 WSL2 bash。

接下来,我想不使用密码而是使用密钥对进行连接。因此,我在 PowerShell 上创建了一个密钥对并将其定位为C:\Users\<my Windows username>\.ssh\authorized_keys.

cd C:\Users\<my Windows username>\.ssh
ssh-keygen -t ed25519 -f …
Run Code Online (Sandbox Code Playgroud)

ssh windows-10 windows-subsystem-for-linux wsl2

2
推荐指数
1
解决办法
4255
查看次数

/etc/ssh/ssh_known_hosts 文件何时以及如何生成?

我阅读了以下教程

我确认ssh-keyscan 192.168.1.X扫描并打印服务器/主机的所有 公钥值 - 该输出来自服务器/主机的以下文件

/etc/ssh/ssh_host_ecdsa_key.pub
/etc/ssh/ssh_host_ed25519_key.pub
/etc/ssh/ssh_host_rsa_key.pub
Run Code Online (Sandbox Code Playgroud)

我可以通过以下选项过滤它们:-t

  • ssh-keyscan -t key_type 192.168.1.X

哪里key_type可以rsa,ecdsaed25519甚至混合,例如:rsa,ecdsa

例如:

  • ssh-keyscan -t rsa 192.168.1.X

到目前为止,我理解了该命令的所有这两种变体。我在我的电脑上确认了该行为

现在,在对这个命令进行研究之后,这篇文章的原因是:

两者都提到了该/etc/ssh/ssh_known_hosts文件,存在

如果在未验证密钥的情况ssh_known_hosts下构建文件ssh-keyscan,用户将容易受到中间人攻击。另一方面,如果安全模型允许这种风险,则 可以帮助检测在文件创建ssh-keyscan后开始的被篡改的密钥文件或中间人攻击ssh_known_hosts

不清楚是否自动ssh_known_hosts创建/构造或使用某些选项,例如-c- 我知道该选项不存在。

那么该文件在客户端中不存在 - 我假设在命令执行之后应该自动生成或创建该文件 - 该路径和文件名出于某种明确的原因而存在,对吗?- 类似于使用命令并被客户端接受服务器指纹.ssh/known_hosts时创建/更新文件的方式ssh username@hostname

ssh openssh ssh-keys

2
推荐指数
1
解决办法
4440
查看次数

如何通过命令行从私有 GitHub 存储库下载文件

我想找到一种更简单的方法来从私有 GitHub 存储库获取文件。

我通过在 GitHub 上创建个人访问令牌来下载文件curl,然后像这样使用它:

curl https://MY_TOKEN@raw.githubusercontent.com/accountName/repoName/branchName/fileName.txt
Run Code Online (Sandbox Code Playgroud)

这对我有用,但是我想知道是否有更简单的方法,也许使用 SSH?我不介意输入 SSH 密码,因为它似乎比创建访问令牌更方便。我已经可以在 GitHub 上成功验证:

$ ssh -T git@github.com
# Attempts to ssh to GitHub
Run Code Online (Sandbox Code Playgroud)

但是,当我尝试使用curlSSH URL 时,出现以下错误:

curl ssh://git@github.com:accountName/repoName/branchName/fileName.txt
curl: (3) URL using bad/illegal format or missing URL
Run Code Online (Sandbox Code Playgroud)

我尝试了本文中描述的其他一些方法,但无济于事。

有任何想法吗?

ssh download git github curl

2
推荐指数
1
解决办法
6782
查看次数

如何使用 ssh-keygen 实用程序生成 rsa-sha2-256 密钥?

我想使用 ssh-keygen 实用程序生成 rsa-sha2-256 ssh 密钥对。您能分享相同的命令吗?

对于 ssh-rsa 来说,它是ssh-keygen -t rsa

ssh openssh rsa ssh-keys ssh-keygen

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

无法通过 SSH 输入重音字符“é”

我有两个可以使用 SSH 连接的 QNAP:

\n
    \n
  • TS-412
  • \n
  • TS-851
  • \n
\n

在 TS-851 上,登录后,如果我在键盘上输入“\xc3\xa9”,屏幕上会显示“\xc3\xa9”。另一方面,TS-412 不会在屏幕上打印字符。因此,我无法访问任何包含重音字符的内容(仍然通过 SSH)。

\n

我进行了搜索,发现的都是有关 SMB 问题,但这不是我的情况。共享文件夹正确显示。通过 SSH 列出文件夹会显示所有重音字符。但是,键入并粘贴并不会进入该框。甚至路径的自动完成也会去除重音字符。

\n

两者的区域设置相同。一切看起来都一样,但显然有些东西不一样。

\n

我知道 QNAP 有自己的 Linux 风格,我已经在他们的论坛中询问过,但以防万一这里有人知道。因为,我认为这个问题看起来更像是一个通用的 Linux 问题(并不是说一切都结束了,但它不是 QNAP 特有的)。

\n

这实在是太烦人了!

\n

编辑 #1 - 回答问题

\n

在我的电脑上执行locale

\n
LANG=C.UTF-8\nLANGUAGE=\nLC_CTYPE="C.UTF-8"\nLC_NUMERIC="C.UTF-8"\nLC_TIME="C.UTF-8"\nLC_COLLATE="C.UTF-8"\nLC_MONETARY="C.UTF-8"\nLC_MESSAGES="C.UTF-8"\nLC_PAPER="C.UTF-8"\nLC_NAME="C.UTF-8"\nLC_ADDRESS="C.UTF-8"\nLC_TELEPHONE="C.UTF-8"\nLC_MEASUREMENT="C.UTF-8"\nLC_IDENTIFICATION="C.UTF-8"\nLC_ALL=\n
Run Code Online (Sandbox Code Playgroud)\n

locale在 TS-412 上执行:

\n
LANG=en_US.UTF-8\nLC_CTYPE="en_US.UTF-8"\nLC_NUMERIC="en_US.UTF-8"\nLC_TIME="en_US.UTF-8"\nLC_COLLATE="en_US.UTF-8"\nLC_MONETARY="en_US.UTF-8"\nLC_MESSAGES="en_US.UTF-8"\nLC_PAPER="en_US.UTF-8"\nLC_NAME="en_US.UTF-8"\nLC_ADDRESS="en_US.UTF-8"\nLC_TELEPHONE="en_US.UTF-8"\nLC_MEASUREMENT="en_US.UTF-8"\nLC_IDENTIFICATION="en_US.UTF-8"\nLC_ALL=en_US.UTF-8\n
Run Code Online (Sandbox Code Playgroud)\n

locale在 TS-851 上执行:

\n
LANG=en_US.UTF-8\nLC_CTYPE="en_US.UTF-8"\nLC_NUMERIC="en_US.UTF-8"\nLC_TIME="en_US.UTF-8"\nLC_COLLATE="en_US.UTF-8"\nLC_MONETARY="en_US.UTF-8"\nLC_MESSAGES="en_US.UTF-8"\nLC_PAPER="en_US.UTF-8"\nLC_NAME="en_US.UTF-8"\nLC_ADDRESS="en_US.UTF-8"\nLC_TELEPHONE="en_US.UTF-8"\nLC_MEASUREMENT="en_US.UTF-8"\nLC_IDENTIFICATION="en_US.UTF-8"\nLC_ALL=en_US.UTF-8\n
Run Code Online (Sandbox Code Playgroud)\n

所有机器上的输出echo $TERM $SHELL相同:

\n
xterm-256color /bin/bash\n
Run Code Online (Sandbox Code Playgroud)\n

在我的计算机上的输出uname -a,TS-412,TS-851(按顺序):

\n
Linux COMPUTER_NAME 5.10.102.1-microsoft-standard-WSL2 #1 …
Run Code Online (Sandbox Code Playgroud)

linux keyboard ssh shell qnap

2
推荐指数
1
解决办法
368
查看次数

如何为 OpenSSH 配置 powershell 而不是 cmd

我有一台 Windows 10 Pro 计算机,我可以ssh将其作为cmd. 我希望将 shell 设置为powershell.exe(不是默认的cmd.exe)。

C:\ProgramData\ssh\sshd我尝试在本文设置以下内容,然后设置Restart-Service sshd,但这不起作用:

Subsystem   powershell  c:/Windows/System32/WindowsPowerShell/v1.0/powershell.exe -sshs -NoLogo -NoProfile
Run Code Online (Sandbox Code Playgroud)

这也不起作用:

Subsystem   powershell  C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -sshs -NoLogo -NoProfile
Run Code Online (Sandbox Code Playgroud)

我已经确认C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exePowerShell的位置正确。

如何使 shell 成为 PowerShell 以ssh访问 Windows 主机?

windows ssh powershell openssh sshd

2
推荐指数
1
解决办法
1468
查看次数

尝试从 Linux 终端进行 SSH 时,路由器输出“错误的 IP 地址或主机名”

总的来说,我是网络知识的初学者。尝试将其发布在网络工程堆栈交换中,但他们将我发送到这里。我的主要目标是能够模拟设备,以便我可以从 Python 应用程序通过 SSH 连接到该设备并获取命令的输出。但首先,我尝试从终端手动通过 SSH 连接到设备。

我使用 GNS3 来模拟网络和 CISCO C7200 图像。我正在使用 Manjaro Linux。我的拓扑:

在此输入图像描述

路由器配置:

conf t
hostname R1
ip domain-name local
crypto key generate rsa
ip ssh version 2
line vty 0 4
transport input ssh
login local
exit
username admin password 1234
exit
Run Code Online (Sandbox Code Playgroud)

从终端,我可以远程登录到它,运行良好:

telnet 127.0.0.1 5001

但是当我跑步时:

ssh admin@127.0.0.1 -p 5001

终端挂起并且 R1 控制台输出以下内容:

在此输入图像描述

我究竟做错了什么?

networking linux ssh virtual-network gns3

2
推荐指数
1
解决办法
202
查看次数

从命令行编辑 Ubuntu 服务器文件

第一次尝试 linux 发行版。尝试使用 vmware fusion 在我的 Mac 上将 JeOS 作为虚拟机运行。安装 ubuntu server 9.04 最小虚拟机。安装ssh。安装了 VMwareTools。

现在我正在尝试从我的 mac 更改共享文件夹的权限。我在终端中输入此命令“sudo vi /etc/fstab”,同时 ssh 进入我的虚拟机。如何编辑它从命令行显示的任何类型的文本文件。我的向上和向下箭头最终只会放入随机字母,我无法输入我想要的位置。

基本上尝试遵循本指南:http : //intranation.com/entries/2009/03/development-virtual-machines-os-x-using-vmware-and/

我正处于最后一步,它尝试获得对共享 Projects 文件夹的读写权限。

谢谢

ssh vim permissions virtual-machine ubuntu

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