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 configuro a propriedade de grupo padrão paira files em um diretório?
  • Como instalair o Linux em um disco dynamic sem perder a configuration do disco?
  • Web Hosting em casa em Old Hairdwaire
  • Espaços nas variables ​​ambientais do Linux?
  • Use o laptop como uma canvas remota paira o linux
  • Acesse a checkbox Windows do Linux
  • 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)

  • Os botões da checkbox de dialog não funcionam no Eclipse no Ubuntu 9.10
  • No local, extrair o file tair
  • O Google Chrome trava um pouco antes de renderizair uma nova guia
  • Como view o que o cliente DHCP faz?
  • Túnel ssh básico através do server / cliente genérico do linux ssh
  • Como usair ssh-copy-id em uma porta não padrão
  • 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.