작은 (큰) 취미 프로젝트로 C#에서 (매우 원시적 인) ssh-2.0 클라이언트를 만들기 위해 준비했습니다.원시 ssh 연결 (낮은 수준)
이(등 바르 밖으로 떠나는 무관 사전 설정) : 이 탐구하고 더 나은 DH를 이해하고 내 암호화 familiarities :
RFC 4253 당으로 번창하는 것입니다,이 같은 초기 연결을 시작했습니다
Random cookie_gen = new Random();
while ((ssh_response = unsecure_reader.ReadLine()) != null)
{
MessageBox.Show(ssh_response);
if (ssh_response.StartsWith("SSH-2.0-")
{
// you told me your name, now I'll tell you mine
ssh_writer.Write("SSH-2.0-MYSSHCLIENT\r\n");
ssh_writer.Flush();
// now I should write up my supported (which I'll keep to the required as per rfc 4253)
ssh_writer.Write(0x20); // SSH_MSG_KEXINIT
byte[] cookie = new byte[16];
for (int i = 0; i < 16; i++)
cookie[i] = Convert.ToByte(cookie_gen.Next(0, 10));
ssh_writer.Write(cookie); // cookie
// and now for the name-list
// This is where I'm troubled
// "Footer"
ssh_writer.Write(0x00); // first_kex_packet_follows
ssh_writer.Write(0x00); // 0
ssh_writer.Flush();
}
}
RFC 4253의 16 페이지에서 볼 수 있듯이 10 개의 이름 목록을 제공해야합니다. 이것들은 단순히 문자열이라고 가정하고, 각리스트의 시작/끝을 (\ n으로 간단하게) \ n 표시하는 방법은 무엇입니까? 내가 올바른 길을 걷고 있니? (DH와 암호화는이 시점을 지나서 처리 할 것임을 염두에 두라. 나의 질문은 전적으로 초기 접촉을 기반으로한다.)
어떤 도움이나 의견은 환영하고 감사합니다,
PS : 나는 알고 라이브러리가 존재 해요,하지만 내 프로젝트와 관련이 없습니다.
질문은 C#을 사용하여 이름 목록을 보내는 방법입니다. 따라서 C# 질문이라고 생각합니다. 나는 서버 이름 목록을 받는다. 그러나 이것은 문자열 형식이 아니기 때문에, MY namelist (어떤 형식인지)를 사용하여 호의와 답을 어떻게 반환 할 것인지 묻는다. 희망이 그것을 정리 : – Chuck