Questions tagged «ssh»

SSH(安全外壳)是用于在远程计算机上安全运行命令的协议。使用此标记可解决有关配置,使用SSH客户端和服务器软件以及对其进行故障排除的问题。

4
Windows最快的远程X
我有以下设置: |-----------------| |---------------| | Windows | LAN (or VPN) | Linux box | | (local machine) | <--------------------> | | |-----------------| |---------------| 我想以最小的延迟从Windows机器访问Linux机器上的Emacs和Eclipse窗口。 我的选择似乎是: VNC 在本地Windows主机上虚拟化Linux来宾,例如使用带有Ubuntu的Virtualbox,然后ssh -X从其虚拟化到Linux盒(这是讨论快速ssh X隧道配置的线程) cygwin与X服务器并ssh -X连接到远程服务器。 目前,我使用RealVNC,但是我注意到一些明显的延迟。经过研究后,我在Wikipedia上阅读了以下内容: VNC协议基于像素。尽管这带来了极大的灵活性(即-可以显示任何类型的桌面),但是它通常比对底层图形布局(例如X11或Windows远程桌面协议)有更好了解的解决方案效率低。 这让我想知道,我需要什么选择才能 从本地Windows计算机最快地访问远程X Windows?


2
通过ssh运行命令时未获取点文件
当我交互式运行程序时,它可以正常运行: ssh somehost $ ~/some/path/somescript.py 当我直接通过ssh运行程序时,它不起作用。该变量PYTHONPATH未设置,因为.bashrc它不是源变量。 ssh somehost ~/some/path/somescript.py 如果我运行ssh somehost 'source ~/.bashrc; ~/some/path/somescript.py',它将正常运行。 但是后者不适用于其他一些人,例如,使用tcsh却根本不使用a ~/.bashrc)。 通过ssh在适用于所有shell的另一台主机上运行事物的命令是什么?

3
ssh远程命令行参数如何解析
我已经看到了有关需要对远程ssh命令的参数进行两次转义的问题和解答。我的问题是:第二次解析究竟在何时何地完成? 如果我运行以下命令: $ ssh otherhost pstree -a -p 我在输出中看到以下内容: |-sshd,3736 | `-sshd,1102 | `-sshd,1109 | `-pstree,1112 -a -p 远程命令(pstree)的父进程是sshd,似乎没有任何shell可以解析远程命令的命令行参数,因此似乎没有必要使用双引号或转义(但绝对是)。相反,如果我先在那儿ssh并获得一个登录shell,然后运行,pstree -a -p我会在输出中看到以下内容: ├─sshd,3736 │ └─sshd,3733 │ └─sshd,3735 │ └─bash,3737 │ └─pstree,4130 -a -p 很明显,bash在这种情况下,有一个外壳可以进行命令行解析。但是,在我直接使用远程命令的情况下,似乎没有外壳,那么为什么需要双引号?
11 bash  shell  ssh  process  quoting 


2
通过SSH在Ubuntu VM中运行Firefox将打开主机的Firefox
我正在使用Slackware。Firefox正在运行。我也有一个使用VirtualBox运行Ubuntu 16.04的虚拟机。 我已经在虚拟机上安装了Firefox,并且在主机上安装了Firefox。 我在虚拟机中打开了SSH会话并运行了Firefox。它打开了我的主机的Firefox的新窗口。 为什么这样做呢?我期待有两个正在运行的Firefox实例:一个在我的主机上,一个在虚拟机上。
11 ssh  firefox 

3
当ssh客户端的参数后面是交互式程序时,为什么sshd不使用伪终端?
连接到SSH服务器的正常方法是ssh username@ip_address。但是用户可能只想在远程计算机上运行程序。因此,程序名称后跟普通参数ssh username@ip_address <program_name>。例如,ssh username@ip_address ls。除了交互式程序(还接受用户输入并提供输出)之外,该参数很好top。输出是 TERM环境变量未设置。 这意味着sshd和top程序之间没有连接(伪)终端。解决方法是-t在整个命令现在变为的地方添加参数ssh -t username@ip_address top。 我的问题是,为什么默认情况下sshd也不能使用伪终端与非交互式程序进行通信,因此无需-t为交互式程序添加参数?
11 ssh  pty 

5
如何配置以便始终可以在动态IP上通过Internet SSH到系统?
基本上,我希望能够像teamviewer一样进行操作,无论网络配置是什么,只要我的ssh服务器(机器A)和ssh客户端(机器B)都可以访问互联网(某些第三台服务器,机器C) ),我可以访问-原因是我希望能够移动机器A,将其插入电源,使其自动连接到几个预先配置的wifi网络之一(每个都是唯一的/不同的) ,而无需在网络上配置端口转发或类似功能,并且能够通过Internet从Machine B登录到该端口 我该怎么做?我不介意在具有静态IP地址的服务器上设置某些内容来帮助进行握手,但是如果存在的话,我也不介意使用第三方服务器(例如teamviewer所做的事情) 编辑为清楚起见:我有3台机器,AB和C A是无头覆盆子pi,将在随机位置打开/关闭电源,并连接到预先配置的wifi网络 B是我要从其连接的具有适当显示器,键盘等的机器 C是我租用的一个具有静态IP地址的AWS服务器,可以从B可靠地SSH插入,并且可以安装帮助B连接到A所需的任何内容
11 networking  ssh 

2
在ssh -t上的stderr
这会将输出发送到STDERR,但不会传播Ctrl+ C(即Ctrl+ C将杀死ssh但不会杀死remote sleep): $ ssh localhost 'sleep 100;echo foo ">&2"' 这会传播Ctrl+ C(即Ctrl+ C将杀死ssh并远程sleep发送),但会将STDERR发送到STDOUT: $ ssh -tt localhost 'sleep 100;echo foo ">&2"' 在仍然传播Ctrl+的同时,如何强制第二个将STDERR输出发送到STDERR C? 背景 GNU Parallel使用'ssh -tt'来传播Ctrl+ C。这样可以杀死远程运行的作业。但是发送到STDERR的数据应在接收端继续发送到STDERR。


2
如何更改用户时区?
我知道(例如在Debian中)可以使用它dpkg-reconfigure tzdata来更改系统的时区,但是我想知道如何更改用户的时区(如果Linux / Unix完全支持这种想法)。 我通常通过ssh远程在服务器上工作,并且鉴于服务器内部使用UTC(文件,...)并且时区相当肤浅,因此我希望根据所连接的位置查看所需时区中的时间。这可能吗?

2
限制SFTP的无密码备份
我需要使用Duplicity将服务器备份到计算机上: duplicity /etc sftp://backup@my.dynamic.ip.address//home/backup 在此之前,我需要通过以下操作允许无密码访问: $ ssh-keygen $ ssh-copy-id backup@my.dynamic.ip.address $ ssh backup@my.dynamic.ip.address 我的问题是,如何将命令限制为仅在生成的公钥中进行此SFTP传输? command="restrict to sftp",no-port-forwarding,no-X11-forwarding,no-agent-forwarding,no-pty ssh-rsa AAAA… 而且由于我使用的是动态IP地址,因此每次IP变化时如何克服“缺少已知主机”的问题?

2
为什么进程替换<()与ssh -F不兼容
我有一些无所事事的虚拟机。要登录他们,我发出vagrant ssh命令。我想使用常规ssh命令登录。的vagrant ssh-config输出合适的配置文件 $ vagrant ssh-config Host default HostName 127.0.0.1 User vagrant Port 2201 UserKnownHostsFile /dev/null StrictHostKeyChecking no PasswordAuthentication no IdentityFile /home/cbliard/.vagrant.d/insecure_private_key IdentitiesOnly yes LogLevel FATAL 在文件中输出此配置并与配合使用时ssh -F,一切正常: $ vagrant ssh-config &gt; /tmp/config $ ssh -F /tmp/config default =&gt; logged successfully 使用进程替换运算符&lt;(cmd)阻止创建临时配置文件时,它将失败: $ ssh -F &lt;(vagrant ssh-config) default Can't open …

6
ssh终止后,ssh命令在其他系统上意外地继续
我正在运行以下命令,并监视其他系统上的输出文件: ssh $ip_address 'for n in 1 2 3 4 5; do sleep 10; echo $n &gt;&gt;/tmp/count; done' 如果我使用^C或通过杀死我登录的终端来终止ssh命令,我希望远程命令也会终止。但是,这不会发生:/tmp/count无论如何获取所有数字1-5,并ps -ejH显示外壳及其sleep子级继续运行。 这是预期的行为吗,并且在任何地方都有记录吗?我可以禁用它吗?通过阅读,我希望必须使用nohup显式启用这种行为,而不是将其作为默认行为。 我浏览了ssh和sshd的手册页,但没有发现明显的地方,Google向我指出了开启此行为而不是关闭它的说明。 我正在运行Red Hat Enterprise Linux 6.2,在两个系统上都具有root登录和bash shell。
11 ssh  rhel  openssh  sshd 

3
如何在启动过程中及早打开端口以通过SSH解锁LUKS
我有一个运行Debian 7的完全加密的服务器,并设置了dropbear和busybox来通过SSH解锁LUKS容器(如本教程和本U&L回答中所述)。 不幸的是,每当我尝试在重新引导时通过SSH SSH到服务器(通过LAN)时,都会出现“拒绝连接”错误。我曾尝试telnet和nmap到默认端口(22),并都表示端口被封闭。 服务器具有ufw接受来自LAN的所有流量的规则: Anywhere ALLOW 192.168.1.0/24 我曾试图改变端口上监听dropbear /etc/defaults/dropbear但ssh和telnet仍然拒绝连接1。 如何确保在引导过程中的那个阶段打开了端口,以便可以连接以解锁LUKS容器? 禁用防火墙没有区别:nmap显示所有端口仍处于关闭状态。 更新2/14 我添加break=premount到内核​​行,并在initramfs中进行了戳戳。dropbear已启动,但此时网络还没有建立。退出后,网络启动并继续引导,直到提示解锁LUKS设备。 此时,网络已启动,并且已为主机分配了正确的IP地址,但端口22仍然关闭。 /etc/initramfs-tools/intiramfs.conf我正在使用的IP线路是: export IP=192.168.1.200::192.168.1.1:255.255.255.0::eth0:off 与/usr/share/doc/cryptsetup/README.remote.gz我尝试仅添加设备选项中的指示一致,但这不足以使网络启动并获得dhcp租约。 更新11/10/14 Karl的回答是需要的:设置/etc/initramfs-tools/conf.d/cryptroot是关键: target=md1_crypt,source=UUID=8570d12k-ccha-4985-s09f-e43dhed9fa2a 该指南还被证明是最新和相关的(并且是成功的)。
11 ssh  networking  luks 

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.