标签: ssh

远程重启Redhat并进入recovery模式后如何SSH?

我需要进入在虚拟机上远程运行的 redhat box 的恢复模式。

我使用的是 RedHat 5 64 位企业版。

我使用 SSH 登录到该框。我可以使用 restart 命令重新启动,但我需要知道我是否能够通过 SSH 连接到它,因为我是远程使用它并且无法通过 UI 登录。

真正的问题是,我chown -R $USER /在根目录上做了一个。

我正在尝试将此作为试验,但没有意识到后果,以使某些事情起作用,即使使用 sudo 也不知何故不起作用。

我中途杀了它。但是,由于这种愚蠢,我不能使用 sudo。

我已经读到我可以在救援模式下做一些事情,但我不明白如何远程进入救援模式。我无法重新安装 linux,这不是一个可能的选择。

无论如何我可以找回我的 sudo 权限吗?

这样做目前不起作用:

chown root:root /usr/bin/sudo
chown: changing ownership of `/usr/bin/sudo': Operation not permitted
sudo chown root:root /usr/bin/sudo
sudo: must be setuid root
Run Code Online (Sandbox Code Playgroud)

linux ssh redhat sudo

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

AWS 中的服务器关闭了连接

昨天连接到 AWS 服务器工作正常,但今天我尝试使用命令提示符进行连接,如下所示:

ssh -i <mypemfile.pem> ubuntu@<my-ip-address>
Run Code Online (Sandbox Code Playgroud)

我有错误:

连接被 IP 地址关闭

我还更改了安全组中的入站规则。

我尝试连接 filezilla、putty、winscp,但没有成功。请帮我找出问题所在。

我是从谷歌做的

ssh -v -i <mypemfile.pem> ubuntu@<my-ip-address>
Run Code Online (Sandbox Code Playgroud)

它将显示以下内容

OpenSSH_6.6.1, OpenSSL 1.0.1m 19 Mar 2015
debug1: Connecting to 52.88.36.194 [52.88.36.194] port 22.
debug1: Connection established.
debug1: identity file instacare.pem type -1
debug1: identity file instacare.pem-cert type -1
debug1: Enabling compatibility mode for protocol 2.0
debug1: Local version string SSH-2.0-OpenSSH_6.6.1
debug1: Remote protocol version 2.0, remote software version OpenSSH_6.6.1p1 Ubu
ntu-2ubuntu2
debug1: match: OpenSSH_6.6.1p1 Ubuntu-2ubuntu2 pat OpenSSH_6.6.1* compat 0x04000 …
Run Code Online (Sandbox Code Playgroud)

ssh command-line-interface amazon-web-services

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

Docker 容器 SSHOpen 没有熬夜

我正在尝试创建一个包含 openssh 服务器的映像,并在调用运行命令时启动它。我采取了以下步骤:

docker pull ubuntu
docker run -d -it ubuntu bash
apt-get update
apt-get install openssh-server -y
exit
docker ps -a 
docker commit <CONTAINER ID> myimg
// tried the following three, same results
docker run -d myimg "/usr/sbin/sshd"
docker run -d myimg /usr/sbin/sshd -D
docker run -d myimg service ssh start
Run Code Online (Sandbox Code Playgroud)

这运行图像然后立即退出,我试图让服务跟上。我究竟做错了什么?

ssh containers docker

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

SSH 配置 ProxyCommand 要求提供公钥

我正在尝试通过网关连接到 EC2 实例。

如果我连接到网关

local> ssh gateway
Run Code Online (Sandbox Code Playgroud)

然后我可以在没有密码的情况下连接到 EC2

gateway> ssh ec2  # works
Run Code Online (Sandbox Code Playgroud)

但是,尝试通过代理连接似乎需要身份文件。

Host gateway
    HostName <gateway>

Host ec2
    HostName ec2-<ec2>.compute.amazonaws.com
    ProxyCommand ssh gateway -W %h:%p


local> ssh ec2
Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)

我认为 ProxyCommand 基本上是将我登录到网关,然后登录到最终目的地。如果是这样,当网关设置为不需要公钥时,为什么它会要求我提供公钥?如何以与 ssh 进入网关然后 ssh 进入 ec2 相同的方式连接到 ec2 实例?

编辑:rsync 正常工作(不要求提供密钥文件)

rsync -pthrvz  --rsync-path=/usr/bin/rsync --rsh='ssh gateway ssh' . ec2:/path
Run Code Online (Sandbox Code Playgroud)

ssh -v 输出 gateway> ssh ec2

gateway> ssh -v ec2
OpenSSH_5.3p1, OpenSSL 1.0.1e-fips 11 Feb 2013
debug1: Reading configuration data /etc/ssh/ssh_config
debug1: Applying options for …
Run Code Online (Sandbox Code Playgroud)

ssh proxy ssh-tunnel

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

用于多服务器管理的集中审计服务器解决方案

我们有几十台 Linux 服务器,还有几个开发人员,每个开发人员都涵盖了服务器的一部分。

目前每台服务器都有一个管理员账号,如果有人想管理那个服务器,他的公钥会被添加到服务器管理员账号的sshauthorized_keys中,这样他就可以访问和编辑这个服务器了。但不是一个好的解决方案:

  • 每个服务器的 ssh 端口不应该对公众开放,这是危险的。
  • 如果多个人使用同一帐户访问一台服务器,我们无法确定谁登录。
  • 很难删除或撤销某人在这些服务器上的 ssh 密钥。

所以我认为应该有更好的解决方案:

  • 一台集中式 ssh 审计和管理服务器。
  • 每个服务器只允许从该服务器访问 ssh 端口。
  • 该服务器可以管理用户帐户,以及每个服务器的访问权限。
  • 开发者使用这个审计服务器来做服务器操作,所有的动作都应该被记录下来,并在他做危险的事情时提醒其他人。
  • 如果这台服务器宕机,有紧急访问解决方案。

如果有人知道这样的解决方案吗?谢谢。

linux ssh ldap

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

如何在 Linux 上使用私钥通过 SSH 连接到远程服务器?

我一直在尝试从终端使用我的私钥文件连接到远程服务器,但它似乎不起作用。我不明白为什么。这是我如何做到的:

$ ssh -i private.ppk oap@10.20.0.11
Enter passphrase for key 'private.ppk':
Enter passphrase for key 'private.ppk':
Enter passphrase for key 'private.ppk':
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
Run Code Online (Sandbox Code Playgroud)

我的私钥文件有 600 模式。我可以在我的 Linux 机器上使用PuTTY来连接这个私钥文件。可能是什么问题?

ssh putty private-key

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

如何记住/缓存或指定 Ansible 的私钥密码

刚开始使用 Ansible,我在客户端机器上设置了一个 Asible 用户,并从 OpenSSL 创建了一组密钥。我在自己的帐户下运行 Ansible。我已经在 Ansible 配置中指定了用户和私钥文件。我希望远程命令以该用户身份运行,并且该用户 sudo 执行需要提升的命令。

/etc/ansible/ansible.cfg

private_key_file = /etc/ansible/pka/confman.crt
remote_user = confman
Run Code Online (Sandbox Code Playgroud)

诸如此类的命令在初始输入密码后不要求输入密码:

ansible all -m ping
Run Code Online (Sandbox Code Playgroud)

每次运行它们时都会提示输入密码:

ansible all -m ping -b
Enter passphrase for key '/etc/ansible/private_keys/confman.crt':
(success)

ansible all -m ping --sudo
Enter passphrase for key '/etc/ansible/private_keys/confman.crt':
(success)

ansible all -a "cat /etc/redhat-release"
Enter passphrase for key '/etc/ansible/private_keys/confman.crt':
(success)
Run Code Online (Sandbox Code Playgroud)

为什么?

有没有办法设置密码?有没有更安全的方法?我计划通过 cron 和其他自动化工具远程运行 ansible,在这些工具中不能输入密码。

作为上下文,我从来不需要在 Linux 服务器之间使用 SSH,总是在 Windows 机器上使用 putty、RoyalTS 和 mRemoteNG 等工具,所以我的 ssh 知识......很少。我想我错过了一些明显的东西。

linux ssh redhat configuration-management ansible

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

iptables 只允许 ssh 和 https

我正在尝试在我的设备上配置 iptables,以便仅允许SSH和HTTPS流量。特别是,HTTPS 协议用于从 Java 客户端向远程服务器调用某些REST API 。

这是我的 iptables:

iptables -F

iptables -P INPUT DROP
iptables -P OUTPUT DROP
iptables -P FORWARD DROP

#SSH
iptables -A INPUT -p tcp -m tcp --dport 22 -j ACCEPT
iptables -A OUTPUT -p tcp --sport 22 -m state --state ESTABLISHED -j ACCEPT

#DNS
iptables -A OUTPUT -p udp --dport 53 -j ACCEPT

#HTTPS
iptables -A OUTPUT -p tcp --sport 443 -j ACCEPT
iptables -A INPUT -p tcp …
Run Code Online (Sandbox Code Playgroud)

linux firewall ssh https iptables

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

非标准 ssh 端口:我应该编辑 /etc/services 吗?

在*nix系统上,当配置ssh以侦听非标准端口时,我是否也应该编辑/etc/services以反映这一点。

我认为应该这样做,因此使用它的工具(例如ufw)将识别 ssh 的正确端口,但我在文档和教程中很少看到它的提及。

那么编辑 是好的还是坏的做法/etc/services,如果不是,为什么?

unix ssh port service

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

将 SSH 命令转换为 PuTTY 命令

我正在尝试翻译 SSH 命令:

ssh -N -L 1521:server1.com:1521 username@server2.com
Run Code Online (Sandbox Code Playgroud)

进入腻子。

  • -N: 不要执行远程命令。这对于仅转发端口很有用(仅限协议版本 2)。
  • -L [bind_address:]port:host:hostport:指定本地(客户端)主机上的给定端口要转发到远程端的给定主机和端口。

该命令首先通过 SSHuser_name@server2.com连接到 ,然后再连接到server11521 端口(NAT 后的服务器)。

以更抽象的方式,该命令可以写为:

ssh -L MY_LOCAL_PORT:FOREIGN_ADDRESS:FOREIGN_PORT MYUSER@SSH_SERVER
Run Code Online (Sandbox Code Playgroud)

我尝试编写以下 PuTTY 命令:

putty -N -D 1521 -P 1521 server2.com username@server1.com
Run Code Online (Sandbox Code Playgroud)

和:

  • -N: 禁止启动 shell 或命令。
  • -D: 在本地端口上设置基于 SOCKS 的动态端口转发。
  • -P: 指定端口号

根据PuTTY 手册。

但是我得到:

在此处输入图片说明

可能是什么问题?

我禁用了防火墙,并检查putty.exe允许与 Internet 通信。


使用 PuTTY GUI,隧道使用以下配置:

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

在此处输入图片说明

ssh putty

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