Como uso o 'lsh' como cliente para um servidor OpenSSHD sem senha?

2

Eu quero tentar lsh , mas parece muito difícil fazê-lo falar com o meu servidor OpenSSHD. Como eu faço isso?

    
por Ole Tange 08.01.2016 / 13:33

1 resposta

7

Então você está pronto para tentar uma alternativa ao cliente do OpenSSH?

Bom para você. lsh www.gnu.org/s/lsh/ é uma alternativa do GNU que pode trabalhar com o servidor do OpenSSH. Infelizmente isso não é fácil.

Assumimos que você pode ssh ao host local que executa o OpenSSHD. Sua primeira tentativa é:

$ lsh localhost
No seed file. Please create one by running
lsh-make-seed -o "/home/tange/.lsh/yarrow-seed-file".
lsh: No randomness generator available.

Então, vamos criar esse arquivo:

$ mkdir .lsh
$ lsh-make-seed -o "/home/tange/.lsh/yarrow-seed-file"
lsh-make-seed: Reading system state...
lsh-make-seed: Got 150 bits of entropy from system state.
lsh-make-seed: Please type some random data. You better do this
lsh-make-seed: when connected directly to a console, typing over
lsh-make-seed: the network provides worse timing information, and
lsh-make-seed: more opportunities for eavesdropping.
----------------------------------------
........................................
lsh-make-seed: Got 182 keystrokes, estimating 200 bits of entropy.
lsh-make-seed: You can stop typing now.

Agora parece muito estúpido para mim que lsh não use /dev/urandom e só volta a digitar em sistemas que não possuem isso.

$ lsh localhost
lsh: Failed to open '/home/tange/.lsh/host-acls' for reading (errno = 2): No such file or directory
lsh: Protocol error: Algorithm negotiation failed.

Isso ocorre porque lsh escolheu uma cifra incompatível quando usada com um OpenSSHD recente. Use -c aes256-ctr - não sei por que não faz isso automaticamente:

$ lsh -c aes256-ctr localhost
lsh: Failed to open '/home/tange/.lsh/host-acls' for reading (errno = 2): No such file or directory
lsh: Server's hostkey is not trusted. Disconnecting.
lsh: Protocol error: Bad server host key

Melhor, mas não é bom o suficiente. Ao tornar lsh menos paranóico, você pode entrar:

$ lsh -c aes256-ctr --sloppy-host-authentication localhost
lsh: Failed to open '/home/tange/.lsh/host-acls' for reading (errno = 2): No such file or directory
Received unauthenticated key for host localhost
Key details:
Bubble Babble: xitem-suten-vedyd-hibuv-naril-nisog-luvet-dagik-negem-kykeb-bexyx
Fingerprint:   4b:9f:4b:4d:10:6b:09:2b:be:ee:df:48:a0:75:d3:9a
Do you trust this key? (y/n) y
Last login: Mon Dec  7 08:11:58 2015 from 192.168.1.103
$ 

Você pode fazer lsh adicionar este hostkey às teclas confiáveis:

$ lsh -c aes256-ctr --sloppy-host-authentication --capture-to ~/.lsh/host-acls localhost
Received unauthenticated key for host localhost
Key details:
Bubble Babble: xitem-suten-vedyd-hibuv-naril-nisog-luvet-dagik-negem-kykeb-bexyx
Fingerprint:   4b:9f:4b:4d:10:6b:09:2b:be:ee:df:48:a0:75:d3:9a
Do you trust this key? (y/n) y
Password for tange: 
Last login: Fri Jan  8 12:46:57 2016 from localhost
$ 

E então você pode usar lsh com o login normal da senha:

$ lsh -c aes256-ctr localhost
Password for tange: 
Last login: Fri Jan  8 12:48:36 2016 from localhost
$ 

Para autorizar uma chave do cliente, converta a chave no formato OpenSSH e anexe-a a .ssh/authorized_keys :

$ lsh-keygen | lsh-writekey
xxxxxx
xxxxxx
Enter new passphrase: 
Again: 
$ lsh-export-key --openssh < ~/.lsh/identity.pub | lsh -c aes256-ctr localhost 'cat >>.ssh/authorized_keys'
Passphrase for key 'tange@hk': 
Password for tange:

Agora você pode usar sua chave lsh para se conectar a um servidor OpenSSH. Para evitar a inserção de senhas, não criptografe sua chave de cliente:

$ lsh-keygen | lsh-writekey -c none
xxxxxx
xxxxxx
$ lsh-export-key --openssh < ~/.lsh/identity.pub | lsh -c aes256-ctr localhost 'cat >>.ssh/authorized_keys'
Password for tange: 
$ lsh -c aes256-ctr localhost
Last login: Fri Jan  8 12:48:40 2016 from localhost
$ 
    
por 08.01.2016 / 13:33

Tags