Como se conectar a um laptop que executa o Ubuntu na mesma rede sem fio doméstica?

3

Estou executando o Ubuntu 14.04.1 LTS de 64 bits em ambos os meus laptops e ambos estão conectados ao mesmo Wi-Fi doméstico no momento.

Eu quero me conectar ao outro computador por meio de um dos computadores, digamos, por meio de SSH , como posso fazer isso? Quais credenciais eu devo saber sobre os dois computadores e qual comando devo usar?

Minha intenção não é simples compartilhamento de arquivos e eu quero alguma outra solução além do Teamviewer, etc., embora o encaminhamento do X-Windows seja bom. Agradeço sua ajuda neste assunto.

Editar: Quando eu tento o SSHing, recebo o seguinte no prompt:

VesnogXPS:~$ ssh [email protected]
ssh: connect to host 192.168.1.22 port 22: Connection refused

Edit2: O problema acima foi resolvido, mas agora ele não consegue ler o .bashrc no computador conectado, as permissões para o arquivo são as seguintes:

-rw-r--r-- 1 ongun ongun 3567 Jan  4 01:06 .bashrc

O erro que recebo é o seguinte e está presente apenas quando se conecta de A a B não enquanto se conecta de B a 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

O conteúdo do ~ / .profile no laptop problemático é:

# ~/.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

Descobri que o problema não era pesquisar o .bashrc . Alterei a linha após o segundo se da seguinte forma: . "$ HOME / .bashrc"

Agora tudo funciona perfeitamente, mas eu tenho mais uma pergunta: por que ela funcionava para o emulador de terminal na máquina local, mas não para o próprio SSH? Eu estou perguntando isso já que ambos são shells de login interativos.

    
O
por Vesnog 19.02.2015 / 14:09

1 resposta

3

Primeiro, você precisa saber que os endereços IP (tente ifconfig ou ip addr show ou qualquer outro método) dos laptops permitem dizer que o IP do Laptop A é "192.168.1.4" e o IP do Laptop B é "192.168.1.5" . Para fazer ssh de A para B e vice-versa, você precisa instalar o servidor ssh em ambos os laptops, seguindo o comando:

sudo apt-get install openssh-server

Como o cliente é instalado automaticamente por padrão, você deve poder ssh nas seguintes direções:

ssh [email protected] ##From B to A
ssh [email protected] ##From A to B

Aqui, "nome de usuário" é qualquer usuário de "192.168.1.4/192.168.1.5" com quem você está efetuando login.

Se você quiser que o encaminhamento ssh X11 tente isto:

ssh -Y [email protected]
ssh -Y [email protected]

Leia a página de manual do ssh para ter mais ideia.

EDIT: Como "Rmano" sugerido no comentário, você pode verificar "Pré-alocação de DHCP". Dê uma olhada em this e este .

Resposta à EDIT: Acho que você não instalou openssh-server em 192.168.1.22, levando à conexão de erro recusada. Você pode verificar quais portas tcp de 192.168.1.11 estão em estado de escuta para conexões fazendo

netstat -tlpn

de 192.168.1.22 e, em seguida, procure a porta 22 por netstat -tlpn | grep 22 . Você também pode verificar isso em 192.168.1.11:

nmap -PN 192.168.1.22

Responda ao 2º EDIT : O problema é que no seu ~/.profile , em vez de fazer o sourcing do arquivo ~/.bashrc por . $HOME/.bashrc , ele está fazendo "$HOME/.bashrc" . O snippet de código deve ser:

if [ -n "$BASH_VERSION" ]; then
    # include .bashrc if it exists
    if [ -f "$HOME/.bashrc" ]; then
        . "$HOME/.bashrc"
    fi
fi
    
por heemayl 19.02.2015 / 14:42