Nếu bạn chỉ muốn gửi PS1
biến và nó không chứa '
(trích dẫn đơn), hãy thử:
ssh targethost -t "PS1='$PS1'; exec bash"
Các địa phương .bashrc
cũng có thể ghi đè lên PS1
(cảm ơn Dennis Williamson vì đã chỉ ra điều này).
Có nhiều cách để truyền các biến môi trường qua ssh , nhưng chúng thường bị vô hiệu hóa trong cấu hình máy chủ. Nếu lệnh PermitUserEnvironment
được bật trong cấu hình máy chủ và mỗi người dùng có cặp khóa riêng (vâng, bạn có thể không may mắn như vậy), bạn có thể thêm environment="PS1=…"
vào dòng ~/.ssh/authorized_keys
tương ứng với khóa của mình.
Nếu bạn muốn giữ cấu hình của riêng mình trên tài khoản người dùng chung, bạn có thể tạo thư mục tệp cấu hình của riêng mình và đặt HOME
biến môi trường để trỏ đến thư mục đó.
ssh targethost mkdir mrstatic.home
scp .bashrc targethost:mrstatic.home/
Tạo các liên kết tượng trưng trong mrstatic.home
thư mục trỏ lại mục tương ứng trong thư mục mẹ khi bạn muốn chia sẻ tệp với người dùng khác.
Sau đó, đăng nhập bằng
ssh targethost -t 'HOME=~/mrstatic.home; exec bash'`
Nếu bạn sẵn sàng sửa đổi điều khiển từ xa .profile
(hoặc tệp khởi tạo khác), có thể bạn có thể tự động hóa cài đặt của mình. Nhiều trang web cho phép LC_*
các biến môi trường thông qua (thông thường chúng được sử dụng cho cài đặt ngôn ngữ). Nếu cả hai điều kiện này đều được đáp ứng, bạn có thể đặt một biến không thực sự được sử dụng cho các miền, giả sử LC_USER
, ở phía máy khách và kiểm tra nó trong máy chủ .profile
.
(Tất nhiên tài khoản được chia sẻ là một ý tưởng tồi, nhưng tôi nhận ra bạn có thể không ở vị trí để thay đổi tình huống đó.)
"PS1='$PS1' bash -i"
(và tại sao khôngexec
, quá)?