Articles of ssh

SSH端口转发到需要联系第三个指定主机访问MySQL的主机

我们定制并支持我们的客户在来自不同networking托pipe服务器的托pipe服务器上托pipe的标准Web应用 通常,应用程序由PHP中的Web应用程序和数据库(主要是MySQL)组成。 对于我们的客户,我们希望提供一个超出networking托pipe商提供的备份服务(通常为四周的保留时间)。 我们要备份的Web应用程序(没有问题)和数据库(问题)。 其中一个Web主机有一个设置,可以防止用户使用mysql.sock访问MySQL数据库。 相反,他们有一个单独的名称(如user123.mydatabaseserver.com)的托pipe服务器本身。 只有通过使用-h参数才能连接到数据库,如下所示: mysql -u mydbuser -p -h user123.mydatabaseserver.com 现在,通常我们通过使用连接到实时托pipe服务器的SSH隧道和端口将MySQL端口转发到备份服务器,然后通过隧道连接到备份服务器上的数据库并运行mysqldump转发的端口。 但是,由于强制主机名参数,在这种情况下这是不可能的。 我们知道,我们可以连接到托pipe服务器,在那里转储数据库,然后使用scp或其他方法复制生成的备份文件,但是我想查看是否不会丢失一些使我们不能使用用于该备份的实时受pipe服务器的存储和/或计算时间。 有只使用端口转发的解决scheme吗? 编辑1:试图使问题更清楚 服务器A(备份系统)服务器B(应用程序服务器)服务器C(数据库服务器) 服务器A应该备份服务器C上的数据库。但是,MySQL访问权限只允许服务器B连接到服务器C并访问数据库。 在这种特定情况下,服务器B和服务器C具有相同的IP地址,但似乎主机通过套接字禁止访问MySQL,并且只允许TCP / IP连接。 与此同时,我有了一个链接SSH端口的想法: 将服务器B上的端口22222绑定到服务器C上的端口3306,然后将服务器A上的44014绑定到服务器B上的22222.但是,尝试从服务器B向服务器C进行SSH连接会导致错误消息: host address xxx.xx.xxx.xx not allowed.

Wheezy进程周期性地死亡

我有一个很奇怪的问题。 我的邮件服务器上的某些进程(但不是全部)会定期(每隔一个月左右)死掉。 死亡的一些过程是: SSH 达夫科特 后缀 不死的进程是: 的Apache2 我的系统正在运行(Debian Wheezy): $ uname -a Linux hostname 3.2.0-4-amd64 #1 SMP Debian 3.2.41-2+deb7u2 x86_64 GNU/Linux 我已经经历了/var/log文件,但是事情似乎都是在事件发生之后才发生的,事件总是发生在早晨6:25。 首先,我认为它与ntpdate每日cron做的事情,所以我删除它,并用ntpd取代它,而不需要cron。 有帮助吗? 没有。 然后我认为它有syslogd做的事情。 看来,死亡的进程都在使用syslog进行日志logging。 我search了一下,但是我没有发现其他人遇到与我一样的问题。 当您的日志logging机制不起作用时,真的很难find问题所在! 这里是所有在事件发生时间(6:25)被修改的日志文件。 在那之后没有日志,所有的日志活动都停止了! 请看看是否有可能导致进程死亡或logging停止的事情。 在/ var / log / syslog的 Feb 16 06:25:01 hostname /USR/SBIN/CRON[32606]: (root) CMD (/usr/local/ispconfig/server/server.sh 2>&1 > /dev/null | while read line; do […]

build立SSH连接后挂起

序言 当我昨天突然断开连接时,我正在使用Ubuntu VM(运行在Azure上)。 我自己也没有计划重启,所以我不确定是什么原因造成的。 我login并积极工作,在那个时候没有做任何类似apt-get升级或类似工作。 问题 断开连接后,我已经能够连接,只是没有完成login。 任何可能导致这种情况的线索,以及如何解决这个问题? SSH输出 $ ssh -v [email protected] OpenSSH_6.2p2, OSSLShim 0.9.8r 8 Dec 2011 debug1: Reading configuration data /etc/ssh_config debug1: /etc/ssh_config line 20: Applying options for * debug1: /etc/ssh_config line 102: Applying options for * debug1: Connecting to myapp.cloudapp.net [137.116.246.159] port 22. debug1: Connection established. debug1: identity file /Users/oligofren/.ssh/id_rsa type […]

远程SSH服务器的rsync与转发的密钥

上下文 我正在编写一个同步脚本来同步一些Web环境。 例如:从生产中更新集成(主要是获取新的数据库行和上传的文件) 我的一些先决条件是: 开发人员将使用集成服务器中的这个脚本 DSA密钥需要连接到生产服务器 集成服务器不能存储开发人员的私钥 题 我希望开发人员连接到与ssh -A集成,以允许脚本使用密钥连接到生产服务器: +————-+ SSH +————-+ rsync +————-+ | Developer | ———> | Integration | ——–> | Production | | computer | | Platform | <——– | platform | +————-+ +————-+ +————-+ (priv DSA key) (pub DSA key) (pub DSA key) 它适用于ssh或scp ,但我无法使rsync使用转发的密钥连接到生产服务器。 我看到类似的问题,但rsync从用户的计算机运行,因此ssh密钥文件可能由-i选项指出。 我关心的不是密码相关,因为这个脚本将由真正的用户运行(不是cron) 我试图指定远程shellrsync像这样: rsync -e […]

在Dockerfile的SSHauthentication问题中本地运行Ansible

由于身份validation问题,我无法在Dockerfile中运行我的可靠剧本。 这是我的dockerfile: FROM ubuntu:14.04 MAINTAINER hyperfocus # Update system and install ansible RUN apt-get -y update RUN apt-get install -y python-yaml python-jinja2 git RUN git clone http://github.com/ansible/ansible.git /tmp/ansible # Set environment WORKDIR /tmp/ansible ENV PATH /tmp/ansible/bin:/sbin:/usr/sbin:/usr/bin ENV ANSIBLE_LIBRARY /tmp/ansible/library ENV PYTHONPATH /tmp/ansible/lib:$PYTHON_PATH # Add repo key and add it to known hosts ADD id_rsa /root/.ssh/id_rsa […]

通过terminalSSH成功​​,但通过Ansible相同的SSH连接在同一台机器上失败?

任何人都可以阐明为什么发生这种情况? 我用用户basicuserlogin到机器A,客户端。 当我尝试在机器B(服务器机器上,作为远程​​用户)上运行一个可靠的剧本。 1)我的私钥/公钥DEFINIELY匹配,在客户端A(以basicuser身份)工作的“ssh user @ serverB”显而易见 – 安全和SSH都指向相同的私钥 2)我〜/ .ssh / known_hosts不过时 3)my〜/ .ssh和〜/ .ssh / *权限是正确的(分别由basicuser,chmod 700拥有) 4)我的hosts.ini文件包含所需的“ansible_ssh_user = remoteuser ansible_ssh_private_key_file =〜/ .ssh / id_rsa”(并且格式正确) 我知道id_rsa匹配/home/remoteuser/.ssh中机器B的“authorized_keys”文件中唯一的条目。 这里是从客户端A通过terminal的SSH: basicuser@serverA:~$ ssh remoteuser@serverB Enter passphrase for key '/home/basicuser/.ssh/id_rsa': Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent permitted by applicable law. Last login: Wed Jul […]

在Linux / Windows远程桌面场景中,我可以使用类似SSH的隧道吗?

我有一个Linux服务器(称为服务器L),我不能直接ssh到它。 为了SSH,我应该连接到一个Windows服务器(称为服务器W),然后从它的SSH连接到我的Linux服务器。 我想知道是否有任何方法,以便我可以build立networking连接或类似服务器-W的RDP tunnle,并直接SSH到我的电脑上的服务器-L? 我的主要原因是避免卡在Windows GUI! 为了具体我的约束是: 我有一个有限的用户在服务器W为RDP 我有私人密钥/根访问服务器L 我的台式机得到了Windows操作系统

屏幕-R不工作与SSH

我在办公室里有一个linux box,我想在家里从我的Macbook ssh进入。 我无法直接到达端口22的盒子,但我有一个端口隧道钉在本地主机:23001和远程Linux机箱上的端口22之间。 这适用于正常的ssh会话: $ ssh -t -2 -A -p 23001 [email protected] 下一步是,我想在屏幕会话内自动运行我的terminal会话。 它几乎可以做到: $ ssh -t -2 -A -p 23001 [email protected] screen -R 如果我没有当前的屏幕会话,它创build一个。 如果已经有一个分离的屏幕,它连接到它。 到现在为止还挺好。 但是,问题是,我从来没有得到一个loginshell,所以我的.profile永远不会运行,我的环境不能设置。 于是,我又走了一步,试着: $ ssh -t -2 -A -p 23001 [email protected] bash -l -c screen -R 现在,我得到一个运行.profile的真实loginshell,但屏幕无法重新连接到分离的会话。 我在我的Macbook上运行上面的命令,在远程机器上,我有一个附加的屏幕: $ screen -list There is a screen on: 21117.pts-21.roysmith01 (01/19/2015 […]

OpenSSH作为SFTP服务器:触发成功和错误的变化

我使用Debian 7.7 Whezzy上的OpenSSH版本,根据dpkg ,1:6.0p1-4 + deb7u2。 我将OpenSSHconfiguration为允许客户端使用SFTP进行连接,并在chroooted环境中读取和修改(上载或replace)任意文件。 我希望在发生更改(删除,上载或replace)时触发脚本,并且如果可能的话也更改成功或失败。 例如,如果Alice上传文件/foo/bar.png ,则会调用脚本notify.sh alice /home/alice/foo/bar.png UPLOAD SUCCESS 。 有没有办法实现这一点?

在OpenBSD上强制更改密码

在OpenBSD 5.6上,我需要使用默认密码configuration多个用户帐户。 我希望用户在第一次SSHlogin时被迫更改默认密码。 在CentOS和Debian上,我可以使用chage -d 0 $username来做到这一点。 从login.conf手册中可以看出,我应该可以在OpenBSD上完成同样的事情,例如: usermod -f 1 $username或者 usermod -f "Jan 1 2015" $username 设置这种方式会提示userinfo $username的适当更改,但通过SSHlogin为$ username并不会实际执行密码更改 – 它会非常愉快地打开shell,忘记密码已被标记为不活动。 2000年的一些post通过编写一个包装loginshell来强制更改密码。 也就是说,考虑到在usermod和chpass的明显脚手架,看起来这是内置的,但是没有像Linux等同的广泛文档那样logging。 BSD专业人员可以通过传统的方法来了解一些情况吗?