Articles of ssh

在FreeBSD上encryption用户目录?

我正在运行FreeBSD,并希望用户的文件使用他/她的密码进行encryption存储,并对这些文件具有无缝的SSH访问权限(前提是用户始终使用基于密码的身份validation)。 在Ubuntu中,这个确切的过程是可能的encryption主目录 。 在FreeBSD中可能吗? 尝试pefs,但无法让它从ssh获取密码。

ssh共享密钥身份validation请求input密码,除非sshd使用-d选项运行

我的客户端是Ubuntu,而服务器是CentOS。 我有共享密钥身份validation设置为从客户端login到服务器。 当我运行如下的服务器: sudo `which sshd` -d 一切按预期工作; 我没有得到用户login提示。 我认为这意味着一切都在正确的位置,具有正确的权限等。当我以“正常”模式重新启动服务器: sudo service sshd restart 我的客户提示我input用户密码。 这里是成功的详细输出(sshd -d): anregen@ba-vm-atf-01:~/workspace$ ssh -v [email protected] OpenSSH_6.0p1 (CentrifyDC build 5.1.1-814) (CentrifyDC build 5.1.1-814), OpenSSL 0.9.8w 23 Apr 2012 debug1: Reading configuration data /etc/centrifydc/ssh/ssh_config debug1: /etc/centrifydc/ssh/ssh_config line 52: Applying options for * debug1: Connecting to test.lab.network.com [172.20.80.45] port 22. debug1: Connection […]

指定一个身份文件的多个SSH签名证书

我正在寻找实施签名证书进行SSH身份validation。 我在这里遵循了这些步骤,现在正试图弄清楚我将如何在我的系统上实现它。 作为一个例子,我们有两个环境:生产和testing; 每个用自己的“用户密钥”来签署其他密钥。 我希望能够控制谁可以访问每个环境,但我遇到的不便之处是允许一个用户使用相同的私钥访问两个环境。 从'-i identity_file'下的'ssh'的手册页: ssh也会尝试从通过追加-cert.pub到标识文件名获得的文件名加载证书信息 这似乎意味着我将不得不拥有私钥的多个副本(只是以不同的名称命名),并相应地为证书文件命名,除了添加.ssh / config文件条目以便使用正确的证书。 我的理解是,如果你在.ssh / config中指定了多个IdentityFile条目,ssh将会尝试每个条目。 但是,似乎没有选项(至less在文档中找不到)来指定证书。 有没有办法在.ssh / config中指定一个证书文件(除了假定的-cert.pub),或者是一个包含要检查的证书列表的文件?

接受任何SSH连接而不考虑客户端密钥

想象一下,我正在设置一个蜜jar,将SSHD设置为接受任何连接的最快方法是什么? 是的,这是真的不安全,所以请不要复制:-) 可能是有用的(把pam_permit放在auth栈上)…我只是没有太多的经验与PAM,目前正在阅读虽然文档。 https://unix.stackexchange.com/questions/124187/accept-any-private-key-for-authentication 对于实际问题的一些背景,我有一台防火墙后面的客户端计算机,它试图通过首先连接出站(所以我可以连接回去)来build立一个反向的SSH隧道…当它不断尝试连接,就好像它使用的密钥不再有效(这是奇怪的),或者别的什么是失败的。 服务器日志显示客户端closures连接,其他客户端可以连接好… debug1: Forked child 29472. Set /proc/self/oom_score_adj to 0 debug1: rexec start in 5 out 5 newsock 5 pipe 7 sock 8 debug1: inetd sockets after dupping: 3, 3 Connection from CLIENT_IP port 46186 debug1: Client protocol version 2.0; client software version OpenSSH_6.0p1 Debian-4+deb7u2 debug1: match: OpenSSH_6.0p1 Debian-4+deb7u2 pat OpenSSH* […]

如何解决OpenSSH协议不匹配?

我试图绕过医院防火墙。 我可以在端口443上将SSH连接到我的devbox: ssh -L 8080:devbox:443 root@devbox -p 443 但我实际上无法让我的浏览器加载devbox。 当我去localhost:8080我得到以下错误: SSH-2.0-OpenSSH_4.3 Protocol mismatch. 当我ssh -V我得到以下内容: devbox: OpenSSH_4.3p2, OpenSSL 0.9.8e-fips-rhel5 01 Jul 2008 本地机器: OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011 我假设这种差异是什么导致协议不匹配。 任何人都可以build议如何解决不匹配?

如何通过公共访问私人主机

我有许多AWS EC2实例,其中一个具有公共IP地址,其余的没有公共IP地址。 我已经使用私钥/公钥对设置了对公用机器的SSH访问权限。 我现在需要通过这个公共实例访问networking的其余部分。 我被告知,如果我从密钥对创build一个.pem文件,并将其安装在公共实例上,我将能够首先SSH进入公共实例,并从那里,SSH到其他。 这感觉不对 将我的私钥复制到另一个实例并不安全。 是否有可能build立一个隧道(不pipe它是什么,我不是一个系统pipe理员)从我的本地机器有密钥对目标实例?

编写一个fail2ban多行正则expression式

我有一些麻烦的主机用我运行的SSH服务器尝试它,我试图用fail2ban来禁止它们。 问题是,我没有用正则expression式做很多工作,用Python正则expression式更less。 下面是我的auth.log中的麻烦的一行: Nov 19 18:58:17 myhost sshd[48272]: Connection from xxx.xxx.xxx.xxx port 3284 on my.host.ip.address port 22 Nov 19 18:58:21 myhost sshd[48272]: fatal: Read from socket failed: Connection reset by peer [preauth] 我想抓住正则expression式中的两条线,在其他文章中我已经看到了如何做多行的东西,但目前我甚至不能把它匹配到第一行! 这是我的* .conf文件的一个片段: [INCLUDES] # Read common prefixes. If any customizations available — read them from # common.local before = common.conf [Init] maxlines […]

限制从公共networkinglogin到公共密钥,但允许来自内部networking的密码

假设UserA被允许通过SSH从公共networking和私有networkinglogin到服务器。 是否有任何选项来限制密码login到私人networking,同时为世界其他地方执行公钥authentication? 我到目前为止在我的configuration AllowUsers [email protected] [email protected] usera 我怎样才能使用usera从[email protected]/24通过公共密钥或密码login,并强制从任何其他networking公用密钥loginusera? 做一些类似于以下工作的东西? 什么是确切的记法语法? # no password login from the public PasswordAuthentication no ChallengeResponseAuthentication no # allow password login from private network Match Users [email protected]/24 [email protected]/24 PasswordAuthentication yes 感谢任何启示。 PS:这个设置的原因是在内部networking中启用密码login作为最后的手段,如果还有其他的失败。

SSH之后的别名不明

$ grep alias ~/.bashrc # User specific aliases and functions . ~/.alias $ grep mydiff ~/.alias alias mydiff='diff –ignore-space-change –ignore-blank-lines –side-by-side –suppress-common-lines' $ alias mydiff alias mydiff='diff –ignore-space-change –ignore-blank-lines –side-by-side –suppress-common-lines' $ ssh -q localhost 'alias mydiff' alias mydiff='diff –ignore-space-change –ignore-blank-lines –side-by-side –suppress-common-lines' $ ssh -q localhost 'mydiff' bash: mydiff: command not found 为什么“mydiff”不能通过SSH获得? 谢谢

只能用ssh密钥login的用户,而不是密码

我正在试图在一个只能通过ssh使用authorized_keys中指定的密钥login的Linux机器上创build一个用户。 用户不应该能够通过密码login,既不通过SSH也不在本地在控制台。 我将如何做到这一点? 目前我做: useradd -m myuser passwd myuser vi /etc/shadow 并用“*”replace密码字段。 一定会有更好的办法? 如果我先不设置密码,ssh将不会在日志中显示“用户myuser不允许,因为帐户被locking”