Solusi 1:
Ada dua cara untuk mencapai ini:
- Ubah direktori home Anda di server ke /var/www/websites (ini bukan ide yang bagus)
- tambahkan
cd /var/www/websites
ke akhir.bashrc
Anda . Saya menggunakan yang ini di dalang kami karena saya selalu ingin berada di /etc/puppet/environments/dkaarsemaker di sana alih-alih homedir saya :-)
Solusi 2:
Jika Anda menggunakan kunci untuk login SSH maka Anda dapat mengubah jalur dengan menambahkan command=
sebelum kunci di ~/.ssh/authorized_keys
di jarak jauh Anda server. Contoh:
command="cd /var/www/websites ; /bin/bash -l" ssh-rsa AAA.....rest of the key
Tidak apa-apa untuk membuat dan menggunakan beberapa kunci untuk pengguna yang sama. Satu kunci di server mungkin berisi perintah yang lain mungkin tidak - dengan cara ini Anda memilih perilaku yang diharapkan saat masuk. Anda cukup membungkusnya dengan lokal ~/.ssh/config
:
Host websites-my-host
HostName <realhostname>
IdentityFile ~/.ssh/<key1> #on the server key with "command"
User webmaster
Host my-host
HostName <realhostname>
IdentityFile ~/.ssh/<key2> #on the server key without command
User webmaster
Inilah yang akan terjadi:
local$ ssh websites-my-host
[email protected]:/var/www/websites$ _
atau:
local$ ssh my-host
[email protected]:~$ _
Solusi 3:
Openssh sshd secara default menerima variabel lingkungan ini dari klien:
AcceptEnv LANG LC_*
Anda dapat menggunakannya untuk mengirim nilai dari lingkungan lokal klien ke server seperti ini:
LC_CDPATH=/var/www/websites ssh -o SendEnv=LC_CDPATH [email protected]
Anda dapat menempatkan direktif SendEnv di ~/.ssh/config sehingga Anda tidak perlu menyertakannya di baris perintah.
Jika Anda menempatkan yang berikut di ~/.profile Anda (untuk hanya memengaruhi login interaktif gunakan .profile, untuk memengaruhi semua login gunakan .bashrc):
if [ "$LC_CDPATH" -a -d "$LC_CDPATH" ]; then
cd "$LC_CDPATH";
fi
Kemudian secara otomatis akan mengubah direktori ke yang ditentukan dalam variabel lingkungan saat Anda masuk, jika ditentukan dan jika itu adalah direktori.
Solusi 4:
Sejak OpenSSH 7.6, Anda dapat menggunakan opsi RemoteCommand baru untuk mencapainya.
Di ~/.ssh/config
Anda :
Host websites-my-host
HostName <realhostname>
IdentityFile ~/.ssh/keyfile
User webmaster
RequestTTY force # check if this is necessary
RemoteCommand cd /var/www/websites && bash -l