我有pam_radius设置和它的工作(centos6,pam_radius:1.4.0-2.el6),我可以通过使用ssh的radius服务器进行身份validation。 我试图完成的是,当服务器不能回退到本地帐户。 这两个密码是不同的(本地与AD),因为AD具有更严格的密码更改策略。 我尝试了一些东西:/etc/pam.d/sshd validation足够的pam_radius_auth.sodebugging auth包含password-auth 现在,只要radius服务器(如“/etc/pam_radius.conf”中定义的)不可用(在pam_radius.conf中使用了错误的IP),它就会工作。 挑战从radius服务器实际可用时开始,我可以使用radius和本地身份validation凭证login。 我有两个问题。 1.我误解了(PAM)模块故障,失败也可能是validation失败,如错误的密码,或者当用户无效或在AD服务器上。 什么是模块故障? 2.有没有办法像我想要设置一样? 即只有当radius服务器连接失败时才回退到本地authentication? 或者,也许正常的方法是没有本地密码,并使用不是AD帐户的后备帐户,以便当所有的东西都失败时,可以使用这个帐户。 那么问题就变成了如何在半径可用时防止使用这个帐户的人。
我试图从服务器1 ssh到服务器2,并执行从服务器1到服务器2的git pull 。 所以在服务器1上,我运行以下命令: ssh root@server2 'cd /root/.example; git pull origin master' 但是这给了我这个错误: Permission denied (publickey). fatal: Could not read from remote repository. Please make sure you have the correct access rights 它能够ssh,因为当我做了ls( ssh root@server2 'cd /root/.example; ls )时,我看到了/root/.example目录的内容。 这只是不能做一个git pull origin master因为它使用了错误的关键。 我能做些什么不同? 我正在使用Centos 6。
很可能有人昨晚做了服务器更新,因为当我尝试做一个rsync (来自win 7)时,我得到了消息(简短版本): WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED! It is possible that a host key has just been changed. The fingerprint for the ECDSA key sent by the remote host is SHA256:x0190vsJNHPmSADGhdfefSftjnF4sB38vsoHOKU. Please contact your system administrator. Add correct host key in */home/steven/.ssh/known_hosts* to get rid of this message. Offending ECDSA key in */home/steven/.ssh/known_hosts:1* […]
我有两个服务器:一个接收来自外部LAN和另一个(LAN内)的连接,我打算通过ssh从外部访问。 有先决条件:我不能访问我的SSH服务与22以外的其他端口; 当然,第一台服务器也必须通过SSH访问。 我为入口服务器创build了一个networking别名: allow-hotplug eth0 iface eth0 inet static address 192.168.1.1 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.254 # DNS directives allow-hotplug eth0:1 iface eth0:1 inet static address 192.168.1.2 netmask 255.255.255.0 network 192.168.1.0 broadcast 192.168.1.255 gateway 192.168.1.254 # DNS directives 我的策略是:在防火墙的情况下,将所有SSH连接转发到第二个IP地址到局域网内的服务器。 所以,我执行了这些命令来configuration防火墙(172.16.1.1是LAN内服务器的IP地址): # iptables -A FORWARD -p tcp -d 172.16.1.1 –dport 22 -m […]
我有一个在DigitalOcean上没有问题的最小云configuration。 我为SSH添加了一些强化,这需要重新启动sshd.socket才能生效: units: – name: sshd.socket command: restart 单独添加本机(没有实际的sshdconfiguration更改)导致设置使用相同的cloud-config在Hetzner上尝试时失败: ssh: connect to host xx.xx.xx.xx port 22: Connection refused 。 它在DigitalOcean上仍然连接良好。 当我拆下这个单元,然后连接到Hetzner机器工作正常,再次添加失败一致。 variables替代 我所知道的两个平台之间的唯一区别是DigitalOcean上的variables$public_ipv4和$private_ipv4被replace为实际的IP地址,在Hetzner这样的裸机上并不是这样。 从CoreOS文档 : 注意:其他文档中引用的$ private_ipv4和$ public_ipv4replacevariables仅在Amazon EC2,Google Compute Engine,OpenStack,Rackspace,DigitalOcean和Vagrant上受支持。 所以我用静态IP地址replacevariables。 我使用公共IP地址,因为除了环回之外,这是唯一可用的接口。 但是,当我提供而不用公共IP地址replace这些variables时,它也可以很好地连接。 检查期刊揭示了一些与名称parsing相关的错误: systemd[1]: Starting etcd2… etcd2[874]: recognized and used environment variable ETCD_ADVERTISE_CLIENT_URLS=http://:2379,http://:4001 etcd2[874]: recognized and used environment variable ETCD_DATA_DIR=/var/lib/etcd2 etcd2[874]: recognized and […]
有没有办法阻止应用程序使用我的ssh-agent密钥? 我开始使用一个使用ssh访问我的远程服务器的应用程序(根据应用程序开发人员的说法,可能是出于合法原因,但不是一个很好的理由)。 我发现当我从开始申请的shell中询问我的RSA密钥密码时。 前几次我甚至不知道,因为密钥已经在我的ssh-agent中,所以应用程序悄悄地使用它,并在我的远程服务器上运行命令,而我不知道。 我不希望这个应用程序使用我的SSH密钥背后。 我通过下载和运行一个应用程序来承担一定的风险,但是除了这个风险外,我还采取了额外的隐私和安全措施,比如使用ssh密码。 ssh-agent似乎删除了RSA密码安全性,所以只有当我没有login时,密码才保护我。
我已经按照ArchWiki和GeekStuff上的这个说明设置了一个用户,他只能通过SFTP(SSH)访问服务器,但是在他家目录的chroot环境中没有Shell( /bin/false )。 没有什么更特别的,但它根本无法正常工作,当我尝试login时,我不断得到access denied消息。这是我迄今为止所尝试的: SFTP用户和组 用户(在这里: user )是组sftp成员。 主目录是/srv/sftp/user 。 Shell通过/bin/false被禁用 用户input: 0 ✓ root@host ~ $ grep -i user /etc/passwd user:x:1002:1000::/srv/sftp/user:/bin/false 小组条目: 0 ✓ root@host ~ $ grep -i sftp /etc/group sftp:x:1000:user 用户组: 0 ✓ root@host ~ $ groups user users sftp 主目录configuration 主目录和上面的所有目录都由root拥有: 0 ✓ root@host ~ $ ls -lsha /srv total […]
我正在写一个脚本,意思是最初设置我的Droplet。 在脚本中,我打开了与我的Ubuntu 14.04服务器的ssh连接,如下所示(用USER和REMOTEvariables定义): ssh -t -t $USER@$REMOTE <<'ENDSSH' ENDSSH 在SSH连接的内部,我有多个我想要执行的命令 – 安装Node.js,更新npm,安装MongoDB等等。 但是,一旦我执行apt-get install命令,其他命令就不会被执行。 所以,如果我有这个: ssh -t -t $USER@$REMOTE <<'ENDSSH' sudo apt-get update sudo apt-get install -y nodejs sudo apt-get install -y npm ENDSSH 命令sudo apt-get install -y npm将不会被执行。 现在,我知道我可以在同一个apt-get install命令中安装多个软件包,但这不是我所要求的,因为之后的其他命令将不会被执行。 这个例子我只是写出来的简单,所以我可以解释我的问题。 我遇到这样的问题,他们说我打开ssh连接时应该放置多个-t标志,我正在做这些,但这并没有帮助。 我究竟做错了什么?
openSSH SSH客户端具有绑定到特定地址的-b选项: -b bind_address Use bind_address on the local machine as the source address of the connection. Only useful on systems with more than one address. 我正在使用的主要networking有一个限制性的防火墙,并不允许SSH连接。 但是,我有一个辅助连接,可以让他们。 使用ssh,我可以使用-b选项,以便它使用辅助networking进行连接并成功连接。 例如,我会使用~/.ssh/config Host * BindAddress <ip-of-secondary-interface> PuTTY / KiTTY是否有相同的选项?
我最近build立了一个linux系统(Debian-Jesse),它已经join了一个基于MS的Kerberos域,并且已经被设置为允许基于Kerberos的远程访问validation。 唯一的问题是,身份validation将不会成功,除非有一个匹配的本地用户。 例如,如果我尝试以wboynton @ EXAMPLE.COM @ xx.xxx.xxx.xx的身份login,它将接受我的密码,然后我将看到auth.log确认我的kerberos身份validation,然后由于找不到而拒绝我我在/etc/shadow 。 然后,如果我在远程计算机上运行sudo adduser wboynton并以远程方式尝试远程login,则会成功。 我环顾四周,在互联网上find一个build议,写一个pam_script脚本,在testing每个kerberizedlogin尝试的auth之前创build一个用户,如果它尚不存在的话。 但是,这对我来说似乎很笨拙。 到目前为止,我还没有能够find将Kerberos指定为权限并完全绕过/etc/passwd和/etc/shadow的可靠方法。 这样的系统是否存在? 谢谢!