9 Temmuz 2020 Perşembe

ssh komutu

Giriş
Şöyle yaparız.
ssh user@host
Şöyle yaparız.
ssh root@a.b.c.d /var/workingproject/notify
Ayarlar dosyası için ssh/config yazısına bakınız.

Too Open Hatası
Kullanılan private key dosyasının haklarını değiştmek gerekir. Şöyle yaparız
chmod 400 ec2-key-pair.pem
SSH_CONNECTION Ortam Değişkeni  
Açıklaması şöyle
ssh always sets the SSH_CONNECTION environment variable in the remote shell to a value containing the client's and server's host and port.

This also works from non-interactive shells and on machines which do not have utmp/systemd/whatever (e.g. on your router or camera)
Örnek
Şöyle yaparız
ssh root@unq 'echo $SSH_CONNECTION'
192.168.38.152 35466 192.168.38.1 22
Şifre
Ekran geldikten sonra şifreyi gireriz. Şifre görünmez. Şifreyi silmek için Ctrl + U'ya basarız.
$ ssh root@somehost
root@somehost's password:
İlk Bağlanma
Açıklaması şöyle. İlk bağlanmada ssh karşı sunucunun bir parmak izini çıkartır ve saklar.
When you connect to an SSH server for the first time, you get this message:

The authenticity of host '<host> (<IP Address>)' can't be established.
<algorithm> key fingerprint is <hash>.
This key is not known by any other names
Are you sure you want to continue connecting (yes/no/[fingerprint])?

When you type yes, you're told: Warning: Permanently added '<host>' (<algorithm>) to the list of known hosts. Here, you've marked this connection as secure, and that you trust that you're connecting to the actual machine. When you reconnect, if the server presents the same key, no warnings are shown. If you were to connect to a MITM server the first time, you would get this same message—there's no magic way for your computer to detect if any given SSH server is who you think it is or not. If you didn't spend the time to manually check the machine's fingerprint on a separate channel, you would blindly trust it and be none the wiser.
Sonraki Bağlanmalar - WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!
Açıklaması şöyle. Karşı sunucuda bir şeyin değiştiğini bildirir. Yani eldeki parmak iziyle gönderilen parmak izi uyuşmuyordur.
When you connect to any host for the first time, SSH saves its identification info. If this identification changes in the future, it displays this message.

This could happen for example after reinstalling target system, replacing it with another one with the same IP/hostname you use to connect or after regenerating system's server SSH keys. If this sounds like something you did recently, that's the reason.

Ssh İle Karşı Sunucuda Komut Çalıştırma
ssh İle Karşı Sunucuda Komut Çalıştırma yazısına taşıdım

-c seçeneği
Kullanılacak şifreleme yöntemini seçmek için kullanılır.

-C seçeneği
Compression yapar. Açıklaması şöyle
SSH can be operated as a compressed protocol, ..., it is enabled as such by default in your distribution or configuration (or you are using ssh -C). 

You can turn off compression on demand with -o Compression=no on the command line, or permanently for a connection by specifying Compression no in your SSH client config.

-D seçeneği
dynamic port forwarding yapar. Yani ssh uygulaması proxy gibi davranır.

Örnek
Kendi bilgisayarımızda şöyle yaparız.
ssh -D 1080 root@10.0.0.1
Açıklaması şöyle.
This will start a socks proxy on your computer on port 1080.
-f seçeneği
Reusable connection için kullanılır
Örnek
Şöyle yaparız
ssh -fN user@server # creates connection in the background that can be reused.
-i seçeneği
Açıklaması şöyle. Private key dosyasını belirtir. Dosya "chmod 400" haklarında olmalıdır. Karşı makinede public key dosyası olmalıdır.
-i identity_file
         Selects a file from which the identity (private key) for public
         key authentication is read.  The default is ~/.ssh/identity for
         protocol version 1, and ~/.ssh/id_dsa, ~/.ssh/id_ecdsa,
         ~/.ssh/id_ed25519 and ~/.ssh/id_rsa for protocol version 2. 
Private key dosyası şöyledir. 
-----BEGIN RSA PRIVATE KEY-----
...
-----END RSA PRIVATE KEY-----
Örnek
Şöyle yaparız.
ssh -v -i ~/Amazon-Permission/FooDev.pem ec2-user@a.b.c.com
Örnek
Şöyle yaparız
~$ ssh -i"/home/kona/.ssh/aws_kona_id" kona@server.akona.me -p22 
Enter passphrase for key '/home/kona/.ssh/aws_kona_id': 
...
-L seçeneği
ssh Port Forwarding yazısına taşıdım

-N seçeneği
ssh Port Forwarding yazısına taşıdım

-oKeyAlgorithm seçeneği
Açıklaması şöyle.
This particular error happens while the encrypted channel is being set up. If your system and the remote system don't share at least one cipher, there is no cipher to agree on and no encrypted channel is possible. Usually SSH servers will offer a small handful of different ciphers in order to cater to different clients;
Key exchange için kullanılır. Eğer istemci ve sunucu key exchange yöntemi için anlaşamazsa şu hata mesajını alırız.
$ ssh foo@10.255.252.1
Unable to negotiate with 10.255.252.1 port 22: no matching key exchange method found. 
Their offer: diffie-hellman-group1-sha1
Şöyle yaparız.
ssh -oKexAlgorithms=+diffie-hellman-group1-sha1 -c 3des-cbc foo@10.255.252.1
-p seçeneği
Açıklaması şöyle.
-p port
         Port to connect to on the remote host.  This can be specified on
         a per-host basis in the configuration file.
port anlamına gelir. Şöyle yaparız.
ssh -p 12345 my_user@123.123.123.1
-q seçeneği
Quite mode'da çalışır.

-Q seçeneği
Örnek - key
Şöyle yaparız
# ssh -Q key
ssh-ed25519
ssh-ed25519-cert-v01@openssh.com
ssh-rsa
ssh-dss
ecdsa-sha2-nistp256
ecdsa-sha2-nistp384
ecdsa-sha2-nistp521
ssh-rsa-cert-v01@openssh.com
ssh-dss-cert-v01@openssh.com
ecdsa-sha2-nistp256-cert-v01@openssh.com
ecdsa-sha2-nistp384-cert-v01@openssh.com
ecdsa-sha2-nistp521-cert-v01@openssh.com
-o seçeneği
Örnek
Şöyle yaparız. Fingerprint kontrolünü devre dışı bırakır.
sh -o StrictHostKeyChecking=no <host or IP>
Örnek
Şöyle yaparız.
ssh -o LogLevel=DEBUG3 user@dest
Örnek
Şöyle yaparız.
ssh -o "IdentitiesOnly yes" -i ~/.ssh/aws_kona_id -v kona@server.akona.me
-R sçeneği
ssh tunnel yazısına taşıdım

-x seçeneği
Açıklaması şöyle.
The -x disables X11 forwarding to get rid of possible X11 forwarding request failed
 messages.
-v seçeneği
Ayrıntılı çıktı verir. Şöyle yaparız.
ssh -v -i ~/Amazon-Permission/FooDev.pem ec2-user@a.b.c.com
-vvv seçeneği
Çok ayrıntılı çıktı verir.  Bu seçenek ile public key gösterilir. Açıklaması şöyle
The private keys are not displayed, not even ephemeral ones used only for that session.

But public keys are displayed. Person with access to output of ssh -vvv would be able to identify the server in an internet scan (if server is open to the internet) and identify the client using something like "ssh public key is associated with github account".
Örnek
Şöyle yaparız.
$ ssh -vvv user@192.168.1.1
-Y seçeneği
Trusted X11 forwarding için kullanılır. Şöyle yaparız.
$ ssh -Y user@host 'echo $DISPLAY; while sleep 3600; do :; done'
localhost:10.0

Hiç yorum yok:

Yorum Gönder