我试图让这个命令作为用户postgres(所以我可以运送wal文件)工作: rsync -a /tmp/test postgres@server2:/tmp/test 但是我得到的错误: Permission denied (publickey). 我运行ssh-keygen eval `ssh-agent`和ssh-add作为server1上的postgres用户。 keygen创build了/var/lib/postgresql/.ssh/id_rsa和id_rsa.pub ,我可以看到它是通过使用ssh -vvv postgres@server2 。 在server2上,我创build了/var/lib/postgresql/.ssh/authorized_keys把id_rsa.pub的内容放在server1里面。 它由postgres用户和组以及chmod 600拥有.ssh目录也由postgres和chmod 700拥有。 我可以从详细sshd日志loggingserver2上看到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: set_newkeys: mode 1 debug1: SSH2_MSG_NEWKEYS sent debug1: expecting SSH2_MSG_NEWKEYS […]
我为两家公司工作(让我们叫他们RedCorp和BlueCorp)。 他们都信任我,但他们互相不相信,我不想把对方的秘密泄露给对方。 我的笔记本电脑的ssh-agent有两个私钥,一个用于访问每个公司。 我可以跑: ssh – 一个redcorp-server1 并从那里访问所有redcorp的其他服务器,凭借我转发的代理连接。 同样,我可以运行: ssh -A bluecorp-server1 并从那里访问所有bluecorp的其他服务器。 问题是,无论何时login到redcorp-server1,root用户都可以将他的$ SSH_AUTH_SOCK设置为指向我转发的代理连接,并滥用我的其他身份以破解BlueCorp。 我怎样才能防止呢? SSH的IdentitiesOnly选项不会做我想要的。 这只能控制我对redcorp-server1进行身份validation时提供的密钥; 它不会改变我的转发的代理程序连接允许redcorp-server1上的ssh进程使用我的任何身份进行身份validation的事实。 我find的唯一的解决scheme是运行两个独立的ssh代理,并只加载一个密钥到他们每个人。 这是一个巨大的痛苦:ssh_config节没有办法指定我连接到给定主机时应使用哪个代理。 相反,我必须在我的笔记本电脑上为两个军团中的每一个制作shell别名,在运行ssh之前将$ SSH_AUTH_SOCK指向正确的代理。 另外,我使用rsync和其他一些使用ssh作为传输工具的工具,并且每个工具都必须使用不同的语法来configuration,以便以特殊的方式调用ssh。 有一个更好的方法吗?
我正在遵循这个(基本的)安全指南来更改我的服务器的SSH端口。 它说: $ semanage port -a -t ssh_port_t -p tcp 2345 #Change me …将在端口2345之上添加一个新的标签,以表示这与SSH相关,并且SSH进程可以访问此端口。 什么错误的是,这是不会删除旧的端口22上的标签。 将旧标签留在原地更安全还是更安全? 我不知道端口的默认设置是在限制还是非限制的空间内,我认为这可能很重要。 如果我错了,请纠正我,但删除旧端口的命令是: # semanage port -d -p tcp 22
我想知道我可以通过ssh完全configuration和添加表到pfsense。 我的目标是有一个networking安装程序,configuration多个系统,并根据输出将configurationpfsense防火墙。 通过ssh,configurationwan,lan会根据conf.txtconfiguration文件自动启用端口80,22等。 谢谢
我正在运行Amazon Linux AMI(Red Hat衍生产品),并使用OpenSSH创build新的SFTP服务器。 我希望SFTP用户被限制在一个目录下,并且能够写入由他们的SFTP客户端显示的初始目录。 我正在使用ChrootDirectory将用户chroot到/home/customers/srgcompany 。 这意味着这个目录必须由root拥有,只能由root来写。 用户的passwd项目看起来像fflintstone:x:508:515:Fred Flintstone:/home/fflintstone:/sbin/nologin 。 我已经把用户的公钥放在/home/fflintstone/.ssh/authorized_keys 。 我已经在/home/customers/srgcompany/fileshere创build了一个用户组( srgcompany )具有读/写/执行/ sgid权限的文件夹。 我已经使用Subsystem sftp internal-sftp -u 0007 -l INFOconfiguration了OpenSSH的SFTP。 那么现在,当用户使用SFTP客户端进行连接时,显示(并由pwd命令返回)的目录将无法写入。 用户可以cd到fileshere文件夹,并写在那里。 有没有什么办法让用户的SFTP中的文件夹文件夹作为初始的远程工作目录,就像在下面的例子中一样? 或者,我可以使chrooted文件夹可写吗? 我想要的是: $ sftp sftpserver.sssprockets.com Connected to sftpserver.sssprockets.com. sftp> pwd Remote working directory: /fileshere 任何帮助深表感谢。
有很多关于如何创build一个chroot的SFTP的教程,但是我想使用SSH,因为比起FTP和phpMyAdmin来说,简单的wget , unzip , mysql和mysqldump要快得多。 该方法也应该是干净的(没有手动ldd魔法)和可扩展的,所以我可以轻松地添加和升级包。
我有一个拥有多个用户的系统,但只有less数选定的用户可以通过SSH(或其他)在给定的时间login系统。 我正在使用“passwd -l / -u”命令来locking和解锁用户,并且一次只允许一个用户。 我需要的是告诉其他用户试图SSH系统,为什么他们不能SSH。 目前,当用户帐户被locking,他们不能SSH时,他们只会得到“拒绝连接”消息。 我希望能够编辑此消息告诉他们“您的帐户被locking,您不能loginxxxxxxx时间之前” 我可以通过什么方式来实现呢? 我已经尝试了谷歌search,但没有任何运气。 谢谢。
我用chrootconfiguration了一个sftp服务器,它工作正常,唯一困扰我的是最初的登陆目录,因为sftp用户在登陆文件夹中没有写入权限,他必须去一个以他自己命名的文件夹用户名来上传文件。 我已经设置了:ForceCommand internal-sftp -d%u,我在一些configuration指南中发现它们说它应该更改登陆文件夹,但是它不起作用。 在开始时我已经在passwd上为用户loginconfiguration了一个空脚本,但是如果它可能与此有关,我将它改为了/ bin / bash。 我重新启动服务,所以也可能不是这个原因。 也许这可能与ssh的版本有关,我使用的分发版或者sshd都不能这样做? 这是我的configuration关于sshd: CentOS版本6.6(最终版) OpenSSH_5.3p1,OpenSSL 1.0.1e-fips 2011年2月11日 Subsystem sftp internal-sftp Match group sftponly ChrootDirectory %h X11Forwarding no AllowTcpForwarding no ForceCommand internal-sftp -d %u
我正在尝试创build一个包含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 这运行的形象,然后立即退出,我想要得到的服务跟上。 我究竟做错了什么?
(与这个问题有关 ) 在Windows上使用sshd服务器( Win32-OpenSSH )(使用基于密钥的auth进行自动化)时,如果没有STDIN(或PTY),它将不起作用。 例如,运行这个(从Debian Jessie openssh客户端)工作正常(返回Windows用户名): ssh -4 -T -o Batchmode=yes winserver whoami 但是,这两个不(他们只是终止而不执行命令,没有返回任何输出): ssh -4 -T -o Batchmode=yes winserver whoami < /dev/null ssh -4 -n -T -o Batchmode=yes winserver whoami 这提出了问题,因为不可能从没有打开STDIN的程序(如cron(8)或atd(8) )运行非交互式ssh命令。 当使用Debian openssh服务器时,它当然没有任何问题。 问题只发生在Windows的SSH服务器( Win32-OpenSSH和FreeSSHD失败。Bitvise SSHD似乎工作正常,但我们正在寻找免费的解决scheme的Windows SSH服务器;开源,简单和维护奖金) 这已经被报道 ,但是有没有人同时有解决方法或解决方法?