আমি স্ব-উত্তর দিচ্ছি, কারণ আমি অবশেষে গোপনীয়তাটি আবিষ্কার করেছি। আমরাও -tজন্য বিকল্প ssh, কিংবা -lজন্য বিকল্প bashতাদের নিজস্ব লগ-ইন শেল হতে হবে - কিন্তু সমন্বয় তারা কাজ হবে।
ssh user@host.com -t 'cd /some/where; FOO=BAR NUMBER=42 bash -l'ডিরেক্টরি পরিবর্তন করে, পরিবেশের ভেরিয়েবলগুলি সেট করে এবং তারপরে সঠিক লগইন শেলটি শুরু হয় (আমি এখনও অবধি খুঁজে পেলাম কেবলমাত্র এই পার্থক্যটি এইভাবে /etc/motdপ্রদর্শিত হয় না - এটি সাধারণত নিজের sshবা loginদায়বদ্ধতার নয় bash, সমস্ত কিছু বলে মনে হয়) নিখুঁতভাবে কাজ করতে এবং সমস্ত পরিবেশগত পরিবর্তনশীল অভিন্ন)।
এই পরিবেশ / ডিরেক্টরি পরিবর্তনগুলি ssh এর পরে ঘটে, সুতরাং সেগুলি PermitUserEnvironmentএবং সম্পর্কিত সেটিংস দ্বারা সীমাবদ্ধ নয় (ঠিক পরিকল্পনা অনুসারে), তবে .bashrc/ .profileকার্যকর করার আগে । এতে উত্সাহ এবং ডাউনসাইড রয়েছে - বাশ ইনিশ স্ক্রিপ্টগুলি থেকে সেট করা এমন PS1কোনও কিছুকে ওভাররাইড করা শক্ত , তবে sshকমান্ড লাইনে সঠিক মানগুলি প্যাক করা সহজ এবং .profileসমস্ত ভারী উত্তোলন করা সম্ভব।
এবং যদি সত্যিই প্রয়োজন .profileহয় তবে কমান্ড লাইনের পরে কিছু কার্যকর করার জন্য বাশ পাওয়া খুব সহজ easy সেই পথে রাখলে ssh user@foo.com -t 'cd /mnt; echo ". ~/.bash_profile; PS1=\"\\h-\w \"" >~/xxx; bash --init-file ~/xxx'খুব কুৎসিত হয় তবে এই বিকল্প .profileফাইলগুলি আগে প্রস্তুত করা যেতে পারে। (যতদূর আমি বলতে পারি স্ক্রিপ্টের bashজন্য কয়েকটি প্রার্থীর অবস্থান রয়েছে .profileএবং এটি পাওয়া প্রথমটি কার্যকর করবে - . fileযেমন স্বয়ংক্রিয় ফলব্যাক নেই, তাই আপনি profileযদি এটি করতে চান তবে আপনার স্বাভাবিকটি কোথায় তা পরীক্ষা করে দেখার প্রয়োজন হবে )