ସ୍ଥାପିତ HTTP CONNECT ଟନେଲକୁ Paramiko କୁ ଦିଅନ୍ତୁ
SSH ହୋଷ୍ଟ-କୀ ଯାଞ୍ଚ ବଜାୟ ରଖି ଅନୁମୋଦିତ HTTP CONNECT ପଥ ଦେଇ Paramiko ସଂଯୋଗ କରନ୍ତୁ।
HTTP CONNECT ସହାୟକ ଇଚ୍ଛିତ SSH ସର୍ଭରକୁ ଏକ ଟନେଲ ଫେରାଇଦେବା ପରେ, ସେହି ଷ୍ଟ୍ରିମ Paramiko କୁ ଦିଅନ୍ତୁ:
with paramiko.SSHClient() as client:
client.load_system_host_keys()
client.connect('ssh.example.com',
username='operator',
sock=tunnel,
banner_timeout=10,
auth_timeout=10)
# Use the verified SSH connection.ଉଦାହରଣ ହୋଷ୍ଟ ବଦଳାନ୍ତୁ ଏବଂ ପରିନିୟୋଜନର ସଠିକ୍ known-hosts ତଥ୍ୟ ଲୋଡ୍ କରନ୍ତୁ। tunnel ପୂର୍ବରୁ ସେହି ସର୍ଭରକୁ ନେଇଯିବା ଉଚିତ। connect କୁ ଦିଆଯାଇଥିବା ହୋଷ୍ଟନାମ SSH ହୋଷ୍ଟ କୀ ଚିହ୍ନଟ କରେ, ପ୍ରକ୍ସି ନୁହେଁ।
sock ଇଣ୍ଟରଫେସ ଏକ ଖୋଲା ସକେଟ କିମ୍ବା ସକେଟ ପରି ବସ୍ତୁ ଗ୍ରହଣ କରେ। ଏହା ଆପଣଙ୍କ ପାଇଁ HTTP ବୁଝାମଣା କରେ ନାହିଁ। ଏହାକୁ ଫେରାଇବା ପୂର୍ବରୁ, ସଂଯୋଜକକୁ କରିବାକୁ ହେବ:
- ପ୍ରକ୍ସି ସହିତ ସଂଯୋଗ ହୋଇ ଲକ୍ଷ୍ୟ ପାଇଁ ଏକ ବୈଧ CONNECT ଅନୁରୋଧ ପଠାଇବା।
- ସମର୍ଥିତ ଯେକୌଣସି ପ୍ରକ୍ସି ପ୍ରମାଣୀକରଣ ସମ୍ପୂର୍ଣ୍ଣ କରି ସଫଳ ଟନେଲ ସ୍ଥିତି ଯାଞ୍ଚ କରିବା।
- ସମ୍ପୂର୍ଣ୍ଣ ପ୍ରକ୍ସି ହେଡର ଅଂଶ ପଢ଼ିବା, ଆଂଶିକ ପଠନ ସମ୍ଭାଳିବା ଏବଂ ସୀମା ବାହାରର ବାଇଟ ସଂରକ୍ଷଣ କରିବା।
- ସେଟଅପ ସୀମିତ କରି ପ୍ରତ୍ୟାଖ୍ୟାତ/ତ୍ରୁଟିପୂର୍ଣ୍ଣ ସକେଟଗୁଡ଼ିକୁ ଏହାର ସଫେଇ ପଥ ଦେଇ ବନ୍ଦ କରିବା।
ସେହି କାମ ପାଇଁ ରକ୍ଷଣାବେକ୍ଷଣ କରାଯାଇଥିବା ସଂଯୋଜକ ବ୍ୟବହାର କରନ୍ତୁ। ଏକ ଗ୍ରହଣ ବଫରରେ ଇଂରାଜୀ ସଫଳତା ବାକ୍ୟାଂଶ ଖୋଜିବା ଦ୍ୱାରା ବିଭକ୍ତ ସ୍ଥିତି ଧାଡ଼ି, ପରିବର୍ତ୍ତନଶୀଳ କାରଣ ପାଠ୍ୟ ଏବଂ ଅସମ୍ପୂର୍ଣ୍ଣ ହେଡର ଛୁଟିଯାଏ। ସଫଳ ପ୍ରକ୍ସି TCP ସଂଯୋଗ ଗ୍ରହଣୀୟ SSH ଟନେଲ ନୁହେଁ।
ପ୍ରକ୍ସି ଅନୁରୋଧିତ SSH ପୋର୍ଟକୁ ଅନୁମତି ଦେବା ଆବଶ୍ୟକ; ୱେବ ବ୍ରାଉଜିଂ ଅନୁମତି ପୋର୍ଟ 22 କୁ CONNECT ପ୍ରବେଶ ସ୍ଥାପନ କରେ ନାହିଁ। 407 SSH ଲଗଇନ ପୂର୍ବରୁ ଘଟେ, ଯେତେବେଳେ SSH ଖାତା ବିଫଳତା ଟନେଲ ପରେ ଘଟେ। ସେହି ଖାତାଗୁଡ଼ିକୁ ଅଲଗା ରଖନ୍ତୁ।
ସମାପ୍ତ ହେଲେ SSH କ୍ଲାଏଣ୍ଟ ଏବଂ ସଂଯୋଜକର ମାଲିକାନାରେ ଥିବା ସମ୍ବଳ ବନ୍ଦ କରନ୍ତୁ। ଏକ କାର୍ଯ୍ୟ ତାର ପଠନ ବନ୍ଦ କରିବା ନିଜେ ଜୀବନ୍ତ ସଂଯୋଗ ବନ୍ଦ କରେ ନାହିଁ।