31 Mayıs 2014 Cumartesi

Asp.Net C# ile ssh üzerinde Linux sunucunuza erişmek ve komut gönderimi nasıl yapılır?

Merhaba arkadaşlar asp.net ile tasarladığım bir panel üzerinden linux sunucuma erişmeli ve bazı işlemleri yapmalıydım bunun için

http://sshnet.codeplex.com/

adresinden indirdiğim kütüphaneyi kullandım ve çok başarılı bir uygulama.

html kısmında ise komutlarım şöyle
Code:
        <asp:DropDownList ID="DropDownList1" runat="server">
            <asp:ListItem Value="ls -la">Dizinler</asp:ListItem>
            <asp:ListItem Value="dir">Dizinler 2</asp:ListItem>
            <asp:ListItem Value="cd ..">Geri</asp:ListItem>
            <asp:ListItem Value="service vncserver start">Vnc Start</asp:ListItem>
            <asp:ListItem Value="service vncserver stop">Vnc Stop</asp:ListItem>
            <asp:ListItem Value="shutdown -r now">Reset</asp:ListItem>
<asp:ListItem Value="free -m">Free Ram</asp:ListItem>
            <asp:ListItem Value="ps -ux">Çalıştırılanlemlerin CPU/RAM kullanımıyla gösterir.   </asp:ListItem>
             

            
            <asp:ListItem Value="df">Harddisk Kullanımı</asp:ListItem>

        </asp:DropDownList>



Code:
using Renci.SshNet;

 protected void Button1_Click(object sender, EventArgs e)
{
        using (var client = new SshClient("sunucuIp", "root", "sifre"))
        {
            TextBox1.Text = null;
            client.Connect();
            TextBox1.Text = client.RunCommand(DropDownList1.SelectedItem.Value).Result;



            client.Disconnect();
        }
}

umarım size faydası olur.

2 yorum:

  1. Merhaba , Aynı kütüphaneyi boş bir projeye ekledim. Build ettiğimde birkaç dosyada hata veriyor. hata almışmıydınız ? .net4.0 ile derliyorum. Hatanın nedeni aşağıdaki class ismi ile public olarak tanımlamanın aynı olması.

    internal class PosixRenameRequest : SftpRequest
    {
    public const string NAME = "posix-rename@openssh.com";

    public override SftpMessageTypes SftpMessageType
    {
    get { return SftpMessageTypes.Extended; }
    }

    public string _OldPath { get; private set; }

    public string _NewPath { get; private set; }

    public PosixRenameRequest(uint protocolVersion, uint requestId, string oldPath, string newPath, Action statusAction)
    : base(protocolVersion, requestId, statusAction)

    YanıtlaSil