标签: ssh

如何在 Debian 中阻止对 OpenSSH 公共服务器 IP 的访问?

我在 DMZ 中有一个带有公共和私有 IP 的 Debian 服务器。我需要能够在我们的私有端通过 SSH 连接到它,然后阻止对公共地址的所有访问。/etc/hosts.deny 和 sshd_config 似乎都只允许一个阻止传入的 IP 地址。我真正想要的是禁用公共 IP 的 SSH 连接。我一直在尝试 iptables,但我也没有运气。

任何帮助表示赞赏。

--EDIT 所以收集我到目前为止的尝试列表:

  • SSH
  • iptables iptables -I INPUT -d $public_ip -p tcp --dport 22 -j REJECT
  • /etc/hosts.deny -sshd: ALL except 192.168.2.12 $DHCPaddressrange : deny插入。
  • Netstat - 结果netstat -tunlp | grep 22

到目前为止,/etc/init.d/ssh 和 /etc/init.d/network 已重新启动。

尝试连接到服务器时使用了内部和外部网络连接。两者都可以通过公共地址访问。

- 编辑

它还活着!显然,我们的访客网络可以访问,这不是最佳选择,但我尝试通过来自访客网络的电话通过 SSH 进行连接,也没有连接。显然,除非我在我们的网络之一上,否则我无法解决它。我在那里看到了一些防火墙问题。

感谢您的回应伙计们。

linux firewall ssh

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

如何通过 SSH 门将 git 用户转发到 gitserver?

我试图通过 ssh 门设置 ssh/git 访问,但 googleing 已经空了。基本上,我希望将用户 git 到我的 ssh 门的任何连接转发到我的 ssh 服务器,以便我可以远程进行推和拉。但是,如果任何其他用户连接,我希望他们像往常一样登录。

internet--(git)-->gate--(git)--> git-server

internet--(user)-->gate
Run Code Online (Sandbox Code Playgroud)

任何帮助或建议将不胜感激。

在客户端执行此操作的一种方法是将以下内容添加到您的 .ssh/config:

Host git.life-hack.org
    HostName          git.life-hack.org
    ProxyCommand      ssh darkclown@www.life-hack.org nc %h %p
    User              git
Run Code Online (Sandbox Code Playgroud)

但我希望有一种方法可以做到这个服务器端。

ssh git forwarding

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

iptable 规则不阻塞

我试图允许 SSH 访问特定范围的 IP(从192.168.1.1到192.168.1.24)并阻止所有其他IP ,但由于我是 iptables 的新手,我似乎无法弄清楚。我有 :

iptables -A INPUT -s 192.168.1.0/24 -p udp --dport ssh -j ACCEPT
iptables -A INPUT -s 192.168.1.0/24 -p tcp --dport ssh -j ACCEPT
iptables -A INPUT -p tcp --dport ssh -j REJECT
iptables -A INPUT -p udp --dport ssh -j REJECT
Run Code Online (Sandbox Code Playgroud)

啧,这行不通,设置了虚拟机后192.168.1.89我仍然可以通过 SSH 访问。有人可以帮忙吗?

ssh iptables

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

Linux - 如何管理 root 的密码?

我们刚刚部署了几个 Linux 服务器。每个系统管理员都将在服务器上拥有自己的帐户(即:jsmith),并将使用 SSH 与证书进行连接,该证书将放入其主目录中的“authorized_keys”文件中。一旦连接到服务器,如果他们想发出提升的命令,他们会这样做:

sudo ifconfig
Run Code Online (Sandbox Code Playgroud)

然后他们将输入 root 密码。

我现在想知道的是管理该 root 密码的最佳实践。我应该定期更换吗?我如何与系统管理员共享新密码?

**当然我会在 SSH 中禁用 root 登录。

linux ssh redhat root

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

使用 netcat 模式代理的 SSH 多跳连接

由于OpenSSH的5.4有一个叫natcat模式的新功能,它允许你绑定STDIN和STDOUT本地SSH客户端通过远程SSH服务器访问的TCP端口。只需调用即可启用此模式ssh -W [HOST]:[PORT]

从理论上讲,这应该非常适合用于ProxyCommand每主机 SSH 配置中的设置,以前经常与nc(netcat) 命令一起使用。ProxyCommand允许您将机器配置为本地机器和目标 SSH 服务器之间的代理,例如,如果目标 SSH 服务器隐藏在防火墙后面。

现在的问题是,它没有工作,而是在我面前抛出一条神秘的错误消息:

Bad packet length 1397966893.
Disconnecting: Packet corrupt
Run Code Online (Sandbox Code Playgroud)

这是我的摘录~/.ssh/config:

Host *
  Protocol 2
  ControlMaster auto
  ControlPath ~/.ssh/cm_socket/%r@%h:%p
  ControlPersist 4h

Host proxy-host proxy-host.my-domain.tld
  HostName proxy-host.my-domain.tld
  ForwardAgent yes

Host target-server target-server.my-domain.tld
  HostName target-server.my-domain.tld
  ProxyCommand ssh -W %h:%p proxy-host
  ForwardAgent yes
Run Code Online (Sandbox Code Playgroud)

正如您在此处看到的,我正在使用 ControlMaster 功能,因此我不必为每台主机打开一个以上的 SSH 连接。

我测试的客户端机器是 Ubuntu 11.10 (x86_64),代理主机和目标服务器都是 Debian Wheezy Beta 3 (x86_64) 机器。

当我调用ssh target-server …

networking linux ssh proxy

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

在 ControlMaster SSH 会话上以编程方式删除端口转发

不久前,我得到了一个答案,告诉我如何在正在运行的 SSH ControlMaster 进程上添加端口转发。要知道这有很大帮助,但是在我不再需要之后,我仍然缺少删除此类端口转发的方法。

据我所知,您可以通过正常连接上的内部命令键序列来执行此操作,这似乎对 ControlMaster 客户端禁用。即使这是可能的,我也需要一个可以用脚本自动化的解决方案,这肯定不是那么容易。

有没有办法做到这一点?它是否易于自动化?

security ssh port-forwarding multiplexing

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

Yum install php-pecl-memcached - 没有找到包(有 epel-release-6-8.noarch.rpm)

我相信我已经下载并更新了 EPEL rpm,但我无法安装 php-pecl-memcached .. 我对此很陌生,感谢任何帮助。

#rpm -Uvh epel-release-6-8.noarch.rpm warning: epel-release-6-8.noarch.rpm: Header V3 RSA/SHA256 Signature, key ID
0608b895: NOKEY Preparing...               
########################################### [100%]
        package epel-release-6-8.noarch is already installed

# yum update Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile  * base: mirror.us.leaseweb.net  * epel:
mirror.symnds.com  * extras: mirror.ash.fastserv.com  * updates:
mirror.vcu.edu Setting up Update Process No Packages marked for Update


#yum install php-pecl-memcached Loaded plugins: fastestmirror, security Loading mirror speeds from cached hostfile  * base:
mirror.us.leaseweb.net  * epel: mirror.symnds.com …
Run Code Online (Sandbox Code Playgroud)

ssh memcached

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

如何允许一台服务器上的用户“postgres”同步到另一台服务器?

我试图让这个命令作为用户 postgres 工作(所以我可以发送 wal 文件):

rsync -a /tmp/test postgres@server2:/tmp/test
Run Code Online (Sandbox Code Playgroud)

但我收到错误:

Permission denied (publickey).
Run Code Online (Sandbox Code Playgroud)

我已经运行ssh-keygen eval `ssh-agent`,并ssh-add为server1上的Postgres用户。keygen 创建/var/lib/postgresql/.ssh/id_rsa,id_rsa.pub我可以看到它是通过使用ssh -vvv postgres@server2.

在我创建的 server2 上,/var/lib/postgresql/.ssh/authorized_keys将 id_rsa.pub 表单 server1 的内容放入其中。它归 postgres 用户和组以及 chmod 600 所有。该.ssh目录也归 postgres 和 chmod 700 所有。

我可以从 server2 上的详细 sshd 登录中看到 Failed publickey for postgres...

两台服务器上的 postgres 用户: postgres:x:106:114:PostgreSQL administrator,,,:/var/lib/postgresql:/bin/bash

ssh -vvv postgres@server2

...
debug1: Found key in /var/lib/postgresql/.ssh/known_hosts:1
debug1: ssh_ecdsa_verify: signature correct
debug2: kex_derive_keys
debug2: …
Run Code Online (Sandbox Code Playgroud)

ssh rsync

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

SSH AllowUsers 来自特定网络

如何只允许某些用户从特定网络接口登录到 SSH 服务器?

例如

  • eth0 是“外部”,eth1 是“内部”。
  • 信任 user1 可以从任何地方登录
  • user2 只允许从“内部”登录

无法使用,AllowUsers user1@eth0因为 AllowUsers 采用主机名而不是接口名称。

本网站上的其他答案建议如下:

Match address 1.2.3.4/16 # eth0's network
   AllowUsers user1
Match address 2.3.4.5/16 # eth1's network
   AllowUsers user1,user2
Match address 0.0.0.0/0  # Match's equivalent of a closing brace?
Run Code Online (Sandbox Code Playgroud)

但是,如果 eth0 使用 DHCP 服务器来获取其地址,那么它事先并不知道 1.2.3.4 是放入 sshd_config 的正确地址。

(如果有所不同,请在 Ubuntu 12.04 上使用 OpenSSH)

ssh

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

如何防止 rsync(使用 ssh 作为远程 shell)面临密码提示

我想在不需要输入密码的情况下运行 rsync。我知道我可以使用 ssh 密钥来做到这一点,一旦正确的密钥被复制到远程服务器,rsync 就可以在没有用户交互的情况下正常登录。

但是,当密钥已更改、已删除,或者说在某些自动化的情况下,服务器已添加到要 rsync 的服务器列表中时,我希望 rsync 不会被提示输入密码。

意思是,rsync 应该只尝试通过 ssh 使用无密码登录,如果这不起作用,则继续前进,而不必处理密码提示和可能的长时间超时。

linux ssh rsync

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