Giriş
Bu dosya şu dizinindedir.
Açıklaması şöyle
Elimizde şöyle bir kod olsun
Host Alanı
alias tanımlamak içindir. Eğer bu dosyada alias tanımlamak istemiyorsak daha kolay bir yolu .bashrc dosyasında kendi alias'larımızı tanımlamak. Şöyle yaparız
Uzaktaki bir bilgisayara alias ve ayar tanımlamak istersek şöyle yaparız.
Eğer şifre girmek istemezsek şöyle yaparız.
Şöyle yaparız
Şöyle yaparız.
Host/ControlPersist Alanı
Açıklaması şöyle.
IdentityFile Alanı
Eğer şifre girmek istemezsek kullanılır.
Örnek
İdentity dosyasını belirtmek için şöyle yaparız.
Kullanılacak şifre yöntemini belirtmek için şöyle yaparız.
Açıklaması şöyle.
Bu dosya şu dizinindedir.
~/.ssh/config
Açıklaması şöyle. Yani kendi bilgisayarımızda ssh komutunu çalıştırınca bu dosya okunur ve buradaki konfigürasyon verisi kullanılır.ssh obtains configuration data from the following sources in the following order:
1. command-line options
2. user's configuration file (~/.ssh/config)
3. system-wide configuration file (/etc/ssh/ssh_config)
Dosya Hakları
Dosya kullanıcı için okunabilir olmalı. Açıklaması şöyle
Ssh requires the file ~/.ssh/config to be readable only by the user it affects and noone else. File-permission of 664 or 644 is default on most systems (rw-rw-r-- or rw-r--r--).
Örnek
Dosya hakkı şöyle olabilir. Burada dosyanın grup yazma hakkı var.
-rw-rw-r-- 1 dev dev 75 Oct 26 20:13 config
Burada ilginç bir problem şöyle. Bir kullanıcı şöyle yapmış
After creating a new user (test) with the same primary group (dev) as the existing user (dev), I am no longer able to git clone when logged in as dev
ssh ise bu durumu istemiyor ve hata veriyor. Açıklaması şöyle. Yani dosya group write ise, grupta tek bir kişi olmalı diyor.
If the file is group-writable, the group in question must have exactly one member, namely the file's owner.(Zero-member groups are typically used by setgid binaries, and are unlikely to be suitable.)
Çözümü ise sadece kullanıcıya rw hakkı vermek. Açıklaması şöyle.
Googling around seems to suggest that I can fix the ssh problem by running chmod 600 ~/.ssh/config
Sebebi ise şöyle. Yani güvenlik açığı olmaması
SSH is explicitly made to check the file permissions, and to complain loudly, if another user could modify the configuration because that would be huge gaping security hole. It probably checks the number of users in the group instead of complaining about group-writability as such, since many systems have per-user groups, and umasks allowing write access for the group and false positives there would just annoy people unnecessarily.
Parametrelerin Tekrar Tanımlanması
ÖrnekFor each parameter, the first obtained value will be used. The configuration files contain sections separated by Host specifications, and that section is only applied for hosts that match one of the patterns given in the specification. ...Since the first obtained value for each parameter is used, more host-specific declarations should be given near the beginning of the file, and general defaults at the end.
Elimizde şöyle bir kod olsun
ServerAliveInterval 1
Host work
ConnectTimeout 2
Host *
ConnectTimeout 3
ServerAliveInterval 4
ServerAliveCountMax 5
Host work
ServerAliveCountMax 6
ServerAliveInterval 7
Açıklaması şöyle- For all hosts, ServerAliveInterval 1 is always used, 4 and 7 are never used, not even for work.
- ConnectTimeout is 2 for work, for other hosts it's 3.
- For all hosts, the ServerAliveCountMax is 5, the work-specific value 6 is never used, not even for work.
Host Alanı
alias tanımlamak içindir. Eğer bu dosyada alias tanımlamak istemiyorsak daha kolay bir yolu .bashrc dosyasında kendi alias'larımızı tanımlamak. Şöyle yaparız
alias go='ssh url1'
alias go2='ssh url2'
ÖrnekUzaktaki bir bilgisayara alias ve ayar tanımlamak istersek şöyle yaparız.
Host myhost
Port 12345
User my_user
HostName 123.123.123.1
Şöyle yaparız.ssh myhost
ÖrnekEğer şifre girmek istemezsek şöyle yaparız.
Host 1
Hostname bastion.example.me
User said
Port 22
IdentityFile ~/.ssh/id_rsa
ForwardAgent yes
ÖrnekŞöyle yaparız
Host meh
HostName meh.example.com
User admin
Port 1234
IdentityFile ~/.ssh/id_rsa
Bağlanmak için şöyle yaparız.ssh meh
Host/Port AlanıŞöyle yaparız.
Host myremotehost
Hostname 555.555.555.555
User user
Port 20002
IdentityFile /Users/myuser/.ssh/vpsssh
Böylece ssh -p ... şeklinde kullanmak zorunda kalmayız.Host/ControlPersist Alanı
Açıklaması şöyle.
Şöyle yaparız.When used in conjunction with ControlMaster, specifies that the master connection should remain open in the background (waiting for future client connections) after the initial client connection has been closed. If set to no, then the master connection will not be placed into the background, and will close as soon as the initial client connection is closed. If set to yes or 0, then the master connection will remain in the background indefinitely (until killed or closed via a mechanism such as the "ssh -O exist"). If set to a time in seconds, or a time in any of the formats documented in sshd_config(5), then the backgrounded master connection will automatically terminate after it has remained idle (with no client connections) for the specified time.
Host host
User root
ControlMaster auto
ControlPath /tmp/ssh-control-%C
ControlPersist 30 # or some safe timeout
Host/HashKnownHosts Alanı
Örnek
~/.ssh/known_hosts dosyasında bağlanılan hostiçin hash üretilmesini engellemek için şöyle yaparız
Host *
HashKnownHosts no
Host/KnownHosts Alanı
Açıklaması şöyle
SSH has a KnownHostsCommand configuration parameter which allows you to specify a command that outputs host key lines in the same format as the known hosts file. This command will be called after SSH has read the known hosts files and allows you to add additional entries on the fly, based on the information of the current connection attempt.
Örnek
Şöyle yaparız
Host 10.0.0.*
KnownHostsCommand /usr/bin/env printf "%H ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAILUT12.."
Host/ProxyJump Alanı
Örnek
Şöyle yaparız. Böylece "conclusions.initech.biz" hariç diğer tüm "*.initech.biz" bağlantıları bir proxy üzerinden gider.
Host *.initech.biz !conclusions.initech.biz
ProxyJump conclusions.initech.biz
Eğer şifre girmek istemezsek kullanılır.
Örnek
İdentity dosyasını belirtmek için şöyle yaparız.
Host somename
Hostname 192.168.1.3
User user
IdentityFile /home/user/ssh/keys/server1key
ÖrnekKullanılacak şifre yöntemini belirtmek için şöyle yaparız.
Host 10.255.252.1
Cipher 3des-cbc
KexAlgorithms +diffie-hellman-group1-sha1
User foo
Host *
Port 9922
X11Açıklaması şöyle.
disabling X11 forwarding does not prevent users from forwarding X11 traffic, as users can always install their own forwarders.
Hiç yorum yok:
Yorum Gönder