Como posso acessar meu telefone Ubuntu pelo ssh?

16

Sempre que tento executar apt-get install openssh-server, obtenho os seguintes erros:

root@ubuntu-phablet:/home/hablet# apt-get install openssh-server
W: Not using locking for read only lock file /var/lib/dpkg/lock
E: Unable to write to /var/cache/apt
E: The package lists or status file could not be parsed or opened.
user195123
fonte
Exatamente o mesmo erro
user195123 22/09
O mesmo erro para mim fazendo a mesma coisa - ubuntu 11.04.
Malee 22/09
11
O @Malee 11.04 é o fim da vida. Você não pode obter ajuda para o 11.04 aqui por causa disso. Atualize para 12.04 ou mais recente ou para uma versão suportada e, em seguida, podemos ajudá-lo a corrigi-lo.
Thomas Ward
11
O Ubuntu touch ainda não possui o centro de software e a atualização é apenas para terminal, o que eu não fiz quando tentei instalar o openssh.
user195123
Ok, já que eu não mudei muito ainda, você acha que formatar meu armazenamento e atualizar o ubuntu ajuda?
User195123

Respostas:

27

Com o lançamento final oficial, o Ubuntu for Phones vem com a ferramenta "android-gadget-service" com a qual você pode gerenciar adb, mtp, tethering USB e ssh.

Conecte seu dispositivo via USB, ative o Modo de desenvolvedor em:

"Configurações do sistema-> Sobre este telefone-> Modo de desenvolvedor"

... e execute (a partir do seu PC, verifique se a tela do telefone está desbloqueada, caso contrário, o adb se recusará a deixar você entrar):

adb shell android-gadget-service enable ssh

Copie sua chave pública para o telefone:

adb shell mkdir /home/phablet/.ssh
adb push ~/.ssh/id_rsa.pub /home/phablet/.ssh/authorized_keys
adb shell chown -R phablet.phablet /home/phablet/.ssh
adb shell chmod 700 /home/phablet/.ssh
adb shell chmod 600 /home/phablet/.ssh/authorized_keys

Agora você pode procurar seu IP no telefone e usar ssh para conectar:

adb shell ip addr show wlan0|grep inet
ssh phablet@<IP from above command>
ogra
fonte
Funciona muito bem, mas o último comando não mostrará IP se a interface de rede não for nomeada wlan0. O meu foi wlan2por algum motivo.
Cos64
O comando: adb push ~ / .ssh / id_rsa.pub /home/phablet/.ssh/authorized_keys Dá-me: não é possível stat '/home/tenleftfingers/.ssh/id_rsa.pub': esse arquivo ou diretório não
existe
Não há necessidade de Modo Desenvolvedor ou tornar a imagem gravável. Veja o SSH Ubuntu Touch para uma solução fácil e funcional. Como sempre, com autenticação sem senha, você precisa colocar um /home/phablet/.ssh/authorized_keysarquivo (com uma chave pública do PC que está usando para acessar o dispositivo Ubuntu Touch) no seu dispositivo. A execução ssh -v phablet@<ip-address>(detalhada) ajuda a depurar problemas de login ou permissão.
Peterino 12/02
@orga Transmite com zeroconf (avahi-daemon)? Dessa forma, posso ver meu dispositivo no nautilus e transferir arquivos pelo sftp.
Khurshid Alam
Eu também tive que adicionar permissões: chmod ow ~ /
Mantas Vaitkūnas
17

Para ativar o acesso ssh inteiramente por Wi-Fi , sem o modo de desenvolvedor no telefone, sem ferramentas especiais no seu computador e sem o uso de USB :

  1. Se você ainda não possui um par de chaves ssh, digite ssh-keygenno seu computador e siga as instruções para gerar um.
  2. Instale o aplicativo Terminal no telefone da App Store.
  3. Abra um terminal e digite (isso é mais fácil com o telefone na orientação paisagem):

    sudo setprop persist.service.ssh true
    mkdir -pm700 ~/.ssh
    ip addr
    nc -l 1234 > ~/.ssh/authorized_keys
    

    (o último comando será interrompido; isso é esperado)

  4. Procure o endereço IP do seu telefone no terminal, conforme retornado pelo ip addrcomando acima.

  5. No seu computador, digite (substituindo 192.0.2.1pelo endereço IP do seu telefone acima):

    nc 192.0.2.1 1234 < ~/.ssh/id_rsa.pub
    

    Se for bem-sucedido, o último comando no terminal do telefone será bem-sucedido.

  6. No seu computador, digite (substituindo novamente 192.0.2.1o endereço IP do telefone):

    ssh [email protected]
    
  7. Se o endereço IP do seu telefone mudar, será necessário usar ip addro aplicativo Terminal no seu telefone novamente e ajustar o comando ssh de acordo.

Robie Basak
fonte
3
Resposta muito informativa, pois elimina o shell adb e o cabo USB. Dois polegares para cima!
Stunts
Na verdade, resposta muito útil. +2
zloster
O @ogra (que sabe melhor do que eu) me diz que foi sudo android-gadget-service enable sshsubstituído sudo setprop persist.service.ssh truee deve ser usado, mas não testei isso.
precisa
11
Essa deve ser a resposta principal, pois no BQ Aquarius 5 o telefone não pode ser descoberto com o método android.
Kat Amsterdam
14

O servidor OpenSSH está agora (a partir de 13 de setembro de 2013) pré-carregado com a instalação do Ubuntu Touch . No entanto, também está desativado por padrão . Você também não quer que o SSH opere a partir do root .


Você precisa digitar o seguinte, usando uma conexão USB com o dispositivo:

adb shell
su - phablet
sudo tee /etc/init/ssh.override < /dev/null

Para reverter para desativado

echo "manual" | sudo tee /etc/init/ssh.override

ATUALIZAÇÃO: (09 / mar / 2014)

A resposta acima não é mais atual.

  • No início de março de 2014, enquanto o arquivo /etc/init/ssh.overrideainda existe, a alteração de seu conteúdo não permite que o SSH (na verdade, o daemon sshd ) seja executado na inicialização.

  • As compilações recentes (testadas para 226 , mas possivelmente anteriormente) agora suportam uma nova meta-flag persist.service.ssh , para permitir que o SSH ( daemon sshd ) reinicie na inicialização.

Obter prompt de comando (no dispositivo)

adb shell
su - phablet

Inicie o SSH e defina o sinalizador

sudo service ssh start
sudo setprop persist.service.ssh true

Dispositivo de reinício

sudo reboot

O daemon SSH deve iniciar automaticamente

sudo service ssh status

Para desativar o início automático do SSH, altere o sinalizador:

sudo setprop persist.service.ssh false
david6
fonte
por que você precisa sudo tudo depois de ir su -?
Octopus
11
A linha su - phabletaltera o usuário para phablet , não para superusuário. Geralmente, é uma prática recomendada usar menos privilégios , para ficar menos vulnerável a ataques.
David6
esta resposta precisa ser atualizada, veja @ ogra's
sergiusens
11
Será necessário revisar e experimentar esse método primeiro.
David6 25/03
0

Instale o Ubuntu SDK e clique em "Abrir conexão SSH do dispositivo" no painel de dispositivos. Bônus: você não resistirá a escrever um novo escopo ...

Beernarrd
fonte
0

Acabei de encontrar uma maneira mais rápida (rápida e suja) (Atenção: não é seguro!) :

1) Instale o aplicativo do terminal e abra-o

2) mudar para root

sudo su

(digite sua senha de bloqueio de tela)

2) Digite os seguintes comandos:

echo "PasswordAuthentication yes" >> /etc/ssh/sshd_config
echo "AllowUsers phablet" >> /etc/ssh/sshd_config
/usr/sbin/sshd

Agora o seu servidor ssh está em execução e aceitará o seu código de bloqueio de tela como uma senha! Atenção: agora é muito fácil usar força bruta! Altere suas configurações imediatamente (agora você pode fazê-lo de uma maneira confortável, depois de se conectar via ssh do seu PC).

Como você executa o sshd manualmente, o arquivo /etc/init/ssh.override não é mais aplicado ...

Então, para se conectar a partir do seu PC:

ssh [email protected]

onde xxxx é um endereço IP do seu telefone, que você pode encontrar digitando

ifconfig

no terminal do seu telefone.

Desfrutar!

UPDATE : pode ser que, após a atualização, o sshd esteja falhando ao iniciar porque não pode abrir as chaves do host, apenas as regenere:

/usr/bin/ssh-keygen -A

Se falhar porque / var / run / sshd está ausente, apenas crie-o:

mkdir /var/run/sshd
chmod 755 /var/run/sshd
Andrey Sapegin
fonte