Fazendo login via ssh sem precisar usar senha

ssh

Quando trabalhamos fazendo conexões ssh em servidores remotos várias vezes ao dia via terminal precisamos saber sempre os utilizadores e senhas dos hosts remotos isto se torna um pouco entediante as vezes.

Exemplo, se voce tiver um servidor ssh instalado na sua máquina, pode testa-lo sem precisar se conectar em um servidor remoto, tente:

ssh localhost

Precisou de senha, não é mesmo?

Que tal se não fosse necessário digitar a senha?

Então é para isto que este script serve!

Basta usa-lo: ./sshnologin.sh ipservidorremoto


# Simple script for copy the ssh keys to a remote host.
# autor: matafe
#!/bin/bash

if [ "x$1" = "x" ]; then
echo 'Target hostname or IP required!'
exit 1;
fi

target_host_ip="$1"
file_key_local="~/.ssh/id_rsa.pub"

echo "Coping '$file_key_local' to host '$target_host_ip' ..."
scp ~/.ssh/id_rsa.pub $target_host_ip:~/

echo "Adding keys on remote host '$target_host_ip' ..."
ssh $target_host_ip 'if [ ! -d ~/.ssh ]; then mkdir ~/.ssh; fi; chmod 700 ~/.ssh; cat ~/id_rsa.pub >> ~/.ssh/authorized_keys; chmod 600 ~/.ssh/authorized_keys; rm ~/id_rsa.pub; chmod 750 ~/'

echo "Testing configuration..."
ssh $target_host_ip 'echo "Configuration done!"'

Pode testá-lo, provavelmente agora já não precise mais de senha!

ssh localhost

DICA: Caso queira colocar seu script no path para de qualquer lugar do terminal poder executá-lo. É só criar um link simbólico em “/usr/local/bin“. Lembre de dar permissão de execução para seu script ssh! (chmod 755 /home/mferraz/Dev/Unix/Scripts/sshnologin.sh)

Ex: ./sshnologin.sh

sudo ln -s /home/mferraz/Dev/Unix/Scripts/sshnologin.sh /usr/local/bin/sshnologin.sh

Sei que talvez voce já sabia, mas é bem útil, não? 🙂

Mudando entre versões do JDK no Mac – OSX

Caso queira manter diferentes versões do Java JDK instalado e ficar alterando entre elas basta usar:

/usr/libexec/java_home -V

Exemplo:

[matafe@Mauricios-MacBook-Pro:~ ] $ java -version

java version "1.8.0_40"
Java(TM) SE Runtime Environment (build 1.8.0_40-b25)
Java HotSpot(TM) 64-Bit Server VM (build 25.40-b25, mixed mode)

[matafe@Mauricios-MacBook-Pro:~ ] $ /usr/libexec/java_home -V

Matching Java Virtual Machines (2):
1.8.0_40, x86_64: "Java SE 8" /Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home
1.7.0_79, x86_64: "Java SE 7" /Library/Java/JavaVirtualMachines/jdk1.7.0_79.jdk/Contents/Home
/Library/Java/JavaVirtualMachines/jdk1.8.0_40.jdk/Contents/Home

[matafe@Mauricios-MacBook-Pro:~ ] $ export JAVA_HOME=$(/usr/libexec/java_home -v1.7.0_79)


[matafe@Mauricios-MacBook-Pro:~ ] $ java -version

java version "1.7.0_79"
Java(TM) SE Runtime Environment (build 1.7.0_79-b15)
Java HotSpot(TM) 64-Bit Server VM (build 24.79-b02, mixed mode)

Pronto! Mudamos do JDK 1.8.0_40 para o 1.7.0_79

Compactando uma pasta em varios arquivos pelo Terminal no Mac

Para dividir uma pasta ou um arquivo em varios de mesmo tamanho no Mac ( ou Unix ) via terminal basta seguir os comandos:

Neste caso vamos dividir uma pasta de 350mb em 4 ficheiros de no máximo 100mb cada:

matafe@kratos:/tmp/movies$ ls -lh iGenius_How-Steve-Jobs-Changed-the-World/
total 716216
-rwxr-xr-x 1 matafe wheel 350M 15 Set 20:23 igenius.how.steve.jobs.changed.the.world.hdtv.xvid-diverge.avi
-rwxr-xr-x 1 matafe wheel 66K 15 Set 20:23 igenius.how.steve.jobs.changed.the.world.hdtv.xvid-diverge.srt

O primeiro passo é compactar a pasta e seus conteudo em um arquivo zip.
Neste caso vamos gerar o arquivo iGenius-full.zip

matafe@kratos:/tmp/movies$ zip -r iGenius-full.zip iGenius_How-Steve-Jobs-Changed-the-World/
adding: iGenius_How-Steve-Jobs-Changed-the-World/ (stored 0%)
adding: iGenius_How-Steve-Jobs-Changed-the-World/igenius.how.steve.jobs.changed.the.world.hdtv.xvid-diverge.avi (deflated 1%)
adding: iGenius_How-Steve-Jobs-Changed-the-World/igenius.how.steve.jobs.changed.the.world.hdtv.xvid-diverge.srt (deflated 63%)

Em seguida, vamos dividir este arquivo zip gerado em arquivos de 100Mb no máximo cada:

matafe@kratos:/tmp/movies$ zip iGenius-full.zip --out iGenius.zip -s 100m
copying: iGenius_How-Steve-Jobs-Changed-the-World/
copying: iGenius_How-Steve-Jobs-Changed-the-World/igenius.how.steve.jobs.changed.the.world.hdtv.xvid-diverge.avi
copying: iGenius_How-Steve-Jobs-Changed-the-World/igenius.how.steve.jobs.changed.the.world.hdtv.xvid-diverge.srt

Verificando o conteudo da pasta:

matafe@kratos:/tmp/movies$ ls -lh
total 1414880
-rw-r--r-- 1 matafe wheel 345M 15 Set 20:39 iGenius-full.zip
-rw-r--r-- 1 matafe wheel 100M 15 Set 21:02 iGenius.z01
-rw-r--r-- 1 matafe wheel 100M 15 Set 21:02 iGenius.z02
-rw-r--r-- 1 matafe wheel 100M 15 Set 21:02 iGenius.z03
-rw-r--r-- 1 matafe wheel 45M 15 Set 21:02 iGenius.zip
drwxr-xr-x 4 matafe wheel 136B 15 Set 20:34 iGenius_How-Steve-Jobs-Changed-the-World

Pronto os ficheiros iGenius.z* foram gerados com o tamanho definido.