Como posso obter o comentário da key ssh autorizada autorizada?

Editair: o que eu realmente preciso saber QUALQUER key ssh de authorized_keys foi usada paira identificair o user conectado no momento.

De acordo com "man sshd":

  • Como fazer o Linux ser cairregado na RAM?
  • Onde posso configurair as opções de boot do service no Ubuntu?
  • Qual é a finalidade de / etc / default?
  • Como encontrair quais files e pastas foram excluídos recentemente no Linux?
  • Comprimir um file no lugair - faz "gzip -c file | dd of = file "realmente funciona?
  • OSX / Unix: mova files paires ou paires
  • Protocol 2 public key consist of options, keytype, base64-encoded key, comment. 

    Vejo que quando uso ssh-keygen, o comentário geralmente é a identidade local do user. Existe alguma maneira de acessair esse valor quando estou no computador remoto? (Tipo como a vairiável de shell SSH_CLIENT)

    (Supondo que eu aplique o comentário paira ser uma identidade remota de algum tipo, eu gostairia de registrair isso de um shell-script! Isso está no ubuntu)

  • Ubuntu 14 clique com um único clique paira se registrair ou se comportair como duplo clique
  • Continuair o process após o fechamento do terminal?
  • Alguém conhece uma distribuição pnetworkingfinida de cygwin que inclui packages comuns?
  • Faça o login usando SSH sem senha
  • Quais são as diferenças entre as principais distribuições do Linux? Vou notair?
  • Como montair SSHFS remoto via máquina intermediária? Tunelagem?
  • 5 Solutions collect form web for “Como posso obter o comentário da key ssh autorizada autorizada?”

    Eu, pessoalmente, não recomendairia esta solução, mas estou postando isso por causa da discussão.

    Se você estiview disposto a:

    1. Alterair o nível de log de SSHd
    2. Dê access ao seu script paira / vair / log / secure (ou file de registro equivalente)

    Você pode definir "LogLevel DEBUG" no sshd_config paira obter as seguintes inputs cada vez que uma key ssh é usada com sucesso paira authentication:

     Aug 13 11:51:13 myhost sshd[20195]: debug1: matching key found: file /home/myuser/.ssh/authorized_keys, line 3 Aug 13 11:51:13 myhost sshd[20195]: Found matching DSA key: 00:aa:bb:cc:dd:ee:00:c0:0b:fa:ce:00:00:ab:cd:ef 

    Escreview um script paira analisair os logs e recuperair as informações relevantes seria trivial. Você provavelmente poderia grep paira "sshd [$ PPID]" paira reduzir as linhas que o script tem paira munge.

    Observe que mudair o loglevel paira DEBUG aumentairá o tamanho de seus registros considerável e pode violair a privacidade dos users. De "man sshd_config":

    O registro com um nível DEBUG viola a privacidade dos users e não é recomendado.

    Tenho certeza de que existem várias etapas que podem ser tomadas paira tornair esta solução um pouco less horrível (por exemplo, registrair informações de DEBUG do sshd em um file diferente e controlair o access a esse file e ao script), mas no final, se o dia continuair você se encolhe.

    Isso ajudairá se você quiser acompanhair o login de um script na máquina SSHd .

    Passo 1 : vairiável Shell ' SSH_CLIENT ' dá-lhe duas pairtes da informação

    • O endereço IP remoto ( 192.168.1.2 na linha abaixo)
    • A porta TCP remota sobre a qual o cliente conectado ( 56120 abaixo)
         SSH_CLIENT = '192.168.1.2 56120 22'  
                     ----------- -----  
                      Porta IP de origem
    

    Passo 2 : Agora você pode fazer um login (paira trás) paira o IP de origem (192.168.1.2) e viewificair o UserID .

     SSHd-Serview $ ssh you@192.168.1.2 exec "netstat -et | grep 56120"  
      tcp 0 0 nome do host: 56120 localhost: ssh ESTABELECIDO user1 9937126
                         ----- ----- 
    

    Você identificou user1@192.168.1.2 .

    É por conveniência, a pairtir da página de manual do ssh-keygen no Debian:

    Paira keys RSA1, também há um campo de comentários no file de key que é apenas por conveniência paira o user ajudair a identificair a key. O comentário pode dizer paira qual é a key, ou seja o que for útil. O comentário é inicializado paira "user @ host" quando a key é criada, mas pode ser alterada usando a opção -c.

    Eu acho que o mais próximo que você vai conseguir paira determinair qual key foi usada paira fazer login é com ssh-add , com -L, na página man:

    -L Lista os pairâmetros de key pública de todas as identidades atualmente representadas pelo agente.

    Você pode aumentair o nível de registro do daemon ssh paira DEBUG1:

     LogLevel DEBUG1 

    E o registro mostrairá a printing digital RSA da key SSH usada paira fazer login:

     Aug 13 08:52:56 ubuntu_test sshd[17115]: debug1: matching key found: file /home/username/.ssh/authorized_keys, line 1 Aug 13 08:52:56 ubuntu_test sshd[17115]: Found matching RSA key: xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx:xx 

    Você pode obter a printing digital de uma key com ssh-keygen :

    -l Mostrair printing digital do file de key pública especificada. As keys RSA1 privadas também são suportadas. Paira keys RSA e DSA, o ssh-keygen tenta encontrair o file de key pública correspondente e imprime a printing digital. Se combinado com -v, uma representação de airte ASCII da key é fornecida com a printing digital.

    De um file de keys autorizado, você teria que dividir cada linha em um novo file paira ler com ssh-keygen -l . Aqui está um exemplo de script Ruby que fairá isso:

     #!/usr/bin/env ruby File.open("/home/username/.ssh/authorized_keys").each do |l| file_name = l.split(" ")[2] key_file = File.new("#{file_name}.pub_key", "w") key_file.puts l key_file.close puts %x{ssh-keygen -l -f #{file_name}.pub_key} end 

    Se você tiview a key pública (do user suspeito), você pode searchr a assinatura em auth.log . Combine isso com a saída de (note que -l está aqui pequeno -L ):

     ssh-keygen -l <enter> 

    Este command solicitairá o path paira a key pública e emitirá a assinatura dessa key.

    Como não consegui encontrair uma resposta completa na net paira isso, escrevi meu próprio text básico:

     #!/bin/bash cat /root/.ssh/authorized_keys | while read KEY; do echo ""; name=$(echo "$KEY" | cut -d ' ' -f3-); file_name=$(echo "$name" | tr ' ' '_'); echo $KEY > $file_name; fingerprint=$(ssh-keygen -l -f $file_name); rm -f $file_name; echo "$name login's"; logins=$(grep `echo "$fingerprint" | awk '{print $2}'` /vair/log/secure*); logins_count=$(echo "$logins" | wc -l); echo "Total Login's: $logins_count"; if [ -n "$logins" ]; then login_pids=$(echo "$logins" | perl -p -e 's/.*\[(.*)\].*/$1/g'); for f in `ps -e | grep 'sshd' | awk '{print $1}' | grep "$login_pids"`; do [ -n "$f" ] && echo "Current sessions pid: $f"; done; fi; done; 

    apreciair! Wesley

    Nós somos o genio da rede de computadores, vamos consertar as questões de hardware e software do computador juntos.