我的两台笔记本电脑上都运行着 Ubuntu 14.04.1 LTS 64 位,目前它们都连接到同一个家庭 Wi-Fi。
我想通过其中一台计算机连接到另一台计算机,比如通过SSH
,我该怎么做?我应该了解两台计算机的哪些凭据以及我应该使用哪个命令?
我的目的不是简单的文件共享,我希望使用 Teamviewer 等以外的其他解决方案,尽管 X-Windows 转发也不错。感谢您在这件事上的帮助。
编辑:当我尝试 SSH 时,出现以下提示:
VesnogXPS:~$ ssh [email protected]
ssh: connect to host 192.168.1.22 port 22: Connection refused
编辑2:上述问题已解决,但现在无法读取所连接计算机上的.bashrc,该文件的权限如下:
-rw-r--r-- 1 ongun ongun 3567 Jan 4 01:06 .bashrc
我收到的错误如下,并且该错误仅在从 A 连接到 B 时出现,而不在从 B 连接到 A 时出现:
[email protected]'s password:
Welcome to Ubuntu 14.04.1 LTS (GNU/Linux 3.13.0-45-generic x86_64)
* Documentation: https://help.ubuntu.com/
Last login: Thu Feb 19 18:52:54 2015 from 192.168.1.22
-bash: /home/ongun/.bashrc: Permission denied
有问题的笔记本电脑上的 ~/.profile 的内容是:
# ~/.profile: executed by the command interpreter for login shells.
# This file is not read by bash(1), if ~/.bash_profile or ~/.bash_login
# exists.
# see /usr/share/doc/bash/examples/startup-files for examples.
# the files are located in the bash-doc package.
# the default umask is set in /etc/profile; for setting the umask
# for ssh logins, install and configure the libpam-umask package.
#umask 022
# if running bash
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
"$HOME/.bashrc"
PATH=/usr/local/texlive/2013/bin/i386-linux:$PATH; export PATH
MANPATH=/usr/local/texlive/2013/texmf-dist/doc/man:$MANPATH; export MANPATH INFOPATH=/usr/local/texlive/2013/texmf-dist/doc/info:$INFOPATH; export INFOPATH
fi
fi
我发现问题不在于来源,.bashrc
我确实在之后改变了线路第二个如果如下: . "$HOME/.bashrc"
现在一切都运行正常,但我还有一个问题,为什么它可以在本地计算机上的终端仿真器上运行,却不能在 SSH 本身上运行?我之所以问这个问题,是因为它们都是交互式登录 shell。
答案1
首先,您需要知道笔记本电脑的 IP 地址(尝试ifconfig
或ip addr show
任何其他方法),假设笔记本电脑 A 的 IP 是“192.168.1.4”,笔记本电脑 B 的 IP 是“192.168.1.5”。要从ssh
A 到 B 或反之亦然,您需要使用以下命令在两台笔记本电脑上安装 ssh 服务器:
sudo apt-get install openssh-server
由于客户端默认自动安装,您现在可以ssh
按照以下任一方向操作:
ssh [email protected] ##From B to A
ssh [email protected] ##From A to B
这里的“用户名”是您以之登录的“192.168.1.4/192.168.1.5”中的任何用户。
如果您想要ssh
X11 转发,请尝试以下操作:
ssh -Y [email protected]
ssh -Y [email protected]
读ssh 的手册页获得更多想法。
编辑:正如“Rmano”在评论中所建议的,您可以检查“DHCP 预分配”。看看这和这。
回答编辑:我认为您没有openssh-server
在 192.168.1.22 上安装,导致错误连接被拒绝。您可以通过以下方式检查 192.168.1.11 的哪些 tcp 端口处于连接监听状态
netstat -tlpn
从 192.168.1.22 然后通过 查找端口 22。netstat -tlpn | grep 22
您也可以从 192.168.1.11 检查:
nmap -PN 192.168.1.22
回答第二次编辑:问题在于,您不是通过它~/.profile
来获取文件,而是在执行。代码片段应该是:~/.bashrc
. $HOME/.bashrc
"$HOME/.bashrc"
if [ -n "$BASH_VERSION" ]; then
# include .bashrc if it exists
if [ -f "$HOME/.bashrc" ]; then
. "$HOME/.bashrc"
fi
fi